swarm / companies/starter/work/project/src/console/components/EmptyState.test.tsx

raw file 987 bytes
import React from 'react';
import { render, screen, fireEvent } from '@testing-library/react';
import { Provider } from 'react-redux';
import { configureStore } from '@reduxjs/toolkit';
import EmptyState from './EmptyState';
import { clearSearch } from '../actions/searchActions';

const mockStore = configureStore({
  reducer: {
    search: {
      query: 'nonexistent-patient',
      results: [],
    },
  },
});

describe('EmptyState', () => {
  it('renders the no-results message and clear button', () => {
    render(
      <Provider store={mockStore}>
        <EmptyState />
      </Provider>
    );

    expect(screen.getByText('No results found')).toBeInTheDocument();
    expect(
      screen.getByText(/couldn't find any records matching/i)
    ).toBeInTheDocument();
    expect(screen.getByRole('button', { name: 'Clear search' })).toBeInTheDocument();
  });

  it('dispatches clearSearch when the button is clicked', () => {
    const mockDispatch = jest.fn();
    const { un