import * as React from 'react'; import { cleanup, render } from '@testing-library/react'; import { Else, If, Then, ElseIf, ThenIf } from '.'; describe('If component', () => { afterEach(cleanup); test('Empty render', () => { const { container } = render(); expect(container.innerHTML).toBe(''); }); test('Render children if true', () => { const { container } = render(<>Test string); expect(container.innerHTML).toBe('Test string'); }); test('Render children if condition === true when children is function', () => { const { container } = render({() => <>Test string}); expect(container.innerHTML).toBe('Test string'); }); test('Render null if condition === false when children is function', () => { const { container } = render({() => <>Test string}); expect(container.innerHTML).toBe(''); }); test('Render array like children', () => { const { container } = render( Test <>String ); expect(container.textContent).toBe('TestString'); }); test('Render Then if true', () => { const { container } = render( Wrong string Right string ); expect(container.innerHTML).toBe('Right string'); }); test('Render Then and Else empty if no children', () => { const { container } = render( ); expect(container.innerHTML).toBe(''); }); test('Render Else if false', () => { const { container } = render( Wrong string Right string ); expect(container.innerHTML).toBe('Right string'); const { container: anotherContainer } = render(Right string); expect(anotherContainer.innerHTML).toBe('Right string'); }); test('Render nothing if false', () => { const { container } = render(<>Test string); expect(container.innerHTML).toBe(''); }); test('Render ElseIf the same way as If inside Else', () => { const { container: container1 } = render( <>Test string ); const { container: container2 } = render( <>Test string ); expect(container1.innerHTML).toBe('Test string'); expect(container2.innerHTML).toBe('Test string'); }); test('Render ThenIf the same way as If inside Then', () => { const { container: container1 } = render( <>Test string ); const { container: container2 } = render( <>Test string ); expect(container1.innerHTML).toBe('Test string'); expect(container2.innerHTML).toBe('Test string'); }); });