/** * External dependencies */ import { render, screen } from '@testing-library/react'; /** * Internal dependencies */ import { Layout } from '../layout'; // Rendering breaks tests. jest.mock( 'homescreen/stats-overview', () => jest.fn().mockReturnValue( null ) ); // We aren't testing the component here. jest.mock( 'task-list', () => jest.fn().mockReturnValue( '[TaskList]' ) ); // We aren't testing the component here. jest.mock( 'inbox-panel', () => jest.fn().mockReturnValue( '[InboxPanel]' ) ); // We aren't testing the component here. jest.mock( 'quick-links', () => jest.fn().mockReturnValue( '[QuickLinks]' ) ); describe( 'Homescreen Layout', () => { it( 'should show TaskList placeholder when loading', () => { const { container } = render( {} } /> ); const placeholder = container.querySelector( '.woocommerce-task-card.is-loading' ); expect( placeholder ).not.toBeNull(); } ); it( 'should show TaskList inline', async () => { const { container } = render( {} } /> ); // Expect that we're rendering the "full" home screen (with columns). const columns = container.querySelector( '.woocommerce-homescreen-column' ); expect( columns ).not.toBeNull(); // Expect that the is there too. const taskList = await screen.findByText( '[TaskList]' ); expect( taskList ).toBeDefined(); } ); it( 'should render TaskList alone when on task', async () => { const { container } = render( {} } /> ); // Expect that we're NOT rendering the "full" home screen (with columns). const columns = container.querySelector( '.woocommerce-homescreen-column' ); expect( columns ).toBeNull(); // Expect that the is there though. const taskList = await screen.findByText( '[TaskList]' ); expect( taskList ).toBeDefined(); } ); it( 'should not show TaskList when user has hidden', () => { render( {} } /> ); const taskList = screen.queryByText( '[TaskList]' ); expect( taskList ).toBeNull(); } ); it( 'should not show TaskList when it is complete', () => { render( {} } /> ); const taskList = screen.queryByText( '[TaskList]' ); expect( taskList ).toBeNull(); } ); it( 'should show QuickLinks when user has hidden TaskList', () => { render( {} } /> ); const quickLinks = screen.queryByText( '[QuickLinks]' ); expect( quickLinks ).toBeDefined(); } ); it( 'should show QuickLinks when TaskList is complete', () => { render( {} } /> ); const quickLinks = screen.queryByText( '[QuickLinks]' ); expect( quickLinks ).toBeDefined(); } ); } );