import React from 'react'; import Result from '..'; import mountTest from '../../../tests/shared/mountTest'; import rtlTest from '../../../tests/shared/rtlTest'; import { render } from '../../../tests/utils'; import Button from '../../button'; describe('Result', () => { mountTest(Result); rtlTest(Result); it('🙂 successPercent should decide the progress status when it exists', () => { const { container } = render( Go Console , , ]} />, ); expect(container.querySelectorAll('.anticon-check-circle')).toHaveLength(1); }); it('🙂 different status, different class', () => { const { container, rerender } = render(); expect(container.querySelectorAll('.ant-result-warning')).toHaveLength(1); rerender(); expect(container.querySelectorAll('.ant-result-error')).toHaveLength(1); rerender(); expect(container.querySelectorAll('.ant-result-500')).toHaveLength(1); }); it('🙂 When status = 404, the icon is an image', () => { const { container } = render(); expect(container.querySelectorAll('.ant-result-404 .ant-result-image')).toHaveLength(1); }); it('🙂 When extra is undefined, the extra dom is undefined', () => { const { container } = render(); expect(container.querySelectorAll('.ant-result-extra')).toHaveLength(0); }); it('🙂 result should support className', () => { const { container } = render(); expect(container.querySelectorAll('.ant-result.my-result')).toHaveLength(1); }); it('should warning when pass a string as icon props', () => { const warnSpy = vi.spyOn(console, 'error').mockImplementation(() => {}); render(); expect(warnSpy).not.toHaveBeenCalled(); render(); expect(warnSpy).toHaveBeenCalledWith( `Warning: [antd: Result] \`icon\` is using ReactNode instead of string naming in v4. Please check \`smile\` at https://ant.design/components/icon`, ); warnSpy.mockRestore(); }); it('should hide icon by setting icon to false or null', () => { const { container } = render(); expect(container.querySelectorAll('.ant-result-icon')).toHaveLength(0); const { container: container2 } = render(); expect(container2.querySelectorAll('.ant-result-icon')).toHaveLength(0); }); });