CustomButton.spec.tsx 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { render, unmountComponentAtNode } from 'react-dom';
  2. import { act } from 'react-dom/test-utils';
  3. import CustomButton from '../../customButton/CustomButton';
  4. let container: any = null;
  5. jest.mock('@material-ui/core/Button', () => {
  6. return props => {
  7. const { variant, children } = props;
  8. return (
  9. <>
  10. <div className="variant">{variant}</div>
  11. <button className="button">{children}</button>;
  12. </>
  13. );
  14. };
  15. });
  16. describe('Test CustomButton', () => {
  17. beforeEach(() => {
  18. container = document.createElement('div');
  19. document.body.appendChild(container);
  20. });
  21. afterEach(() => {
  22. unmountComponentAtNode(container);
  23. container.remove();
  24. container = null;
  25. });
  26. test('test button props', () => {
  27. act(() => {
  28. render(<CustomButton variant="contained">test</CustomButton>, container);
  29. });
  30. expect(container.querySelector('.button').textContent).toBe('test');
  31. expect(container.querySelector('.variant').textContent).toBe('contained');
  32. });
  33. });