DialogTemplate.spec.tsx 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { screen, render, fireEvent } from '@testing-library/react';
  2. import DialogTemplate from '../../customDialog/DialogTemplate';
  3. import provideTheme from '../utils/provideTheme';
  4. import { I18nextProvider } from 'react-i18next';
  5. import i18n from '../../../i18n';
  6. describe('test dialog template component', () => {
  7. const mockCancelFn = jest.fn();
  8. const mockConfirmFn = jest.fn();
  9. it('renders default state and callbacks', () => {
  10. render(
  11. provideTheme(
  12. <I18nextProvider i18n={i18n}>
  13. <DialogTemplate
  14. title="dialog template"
  15. handleClose={mockCancelFn}
  16. handleConfirm={mockConfirmFn}
  17. >
  18. dialog content
  19. </DialogTemplate>
  20. </I18nextProvider>
  21. )
  22. );
  23. expect(screen.getByText('dialog template')).toBeInTheDocument();
  24. expect(screen.getByText('dialog content')).toBeInTheDocument();
  25. fireEvent.click(screen.getByRole('button', { name: /cancel/i }));
  26. expect(mockCancelFn).toBeCalledTimes(1);
  27. fireEvent.click(screen.getByRole('button', { name: /confirm/i }));
  28. expect(mockConfirmFn).toBeCalledTimes(1);
  29. });
  30. it('checks confirm button disable', () => {
  31. render(
  32. provideTheme(
  33. <I18nextProvider i18n={i18n}>
  34. <DialogTemplate
  35. title="dialog template"
  36. handleClose={mockCancelFn}
  37. handleConfirm={mockConfirmFn}
  38. confirmDisabled={true}
  39. >
  40. dialog content
  41. </DialogTemplate>
  42. </I18nextProvider>
  43. )
  44. );
  45. expect(screen.getByRole('button', { name: /confirm/i })).toBeDisabled();
  46. });
  47. });