github.com/freiheit-com/kuberpult@v1.24.2-0.20240328135542-315d5630abe6/services/frontend-service/src/ui/Pages/ProductVersion/ProductVersionPage.test.tsx (about) 1 /*This file is part of kuberpult. 2 3 Kuberpult is free software: you can redistribute it and/or modify 4 it under the terms of the Expat(MIT) License as published by 5 the Free Software Foundation. 6 7 Kuberpult is distributed in the hope that it will be useful, 8 but WITHOUT ANY WARRANTY; without even the implied warranty of 9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 MIT License for more details. 11 12 You should have received a copy of the MIT License 13 along with kuberpult. If not, see <https://directory.fsf.org/wiki/License:Expat>. 14 15 Copyright 2023 freiheit.com*/ 16 import { render } from '@testing-library/react'; 17 import { MemoryRouter } from 'react-router-dom'; 18 import { ProductVersionPage } from './ProductVersionPage'; 19 import { fakeLoadEverything } from '../../../setupTests'; 20 21 describe('ProductVersionPage', () => { 22 const getNode = (): JSX.Element | any => ( 23 <MemoryRouter> 24 <ProductVersionPage /> 25 </MemoryRouter> 26 ); 27 const getWrapper = () => render(getNode()); 28 29 interface dataEnvT { 30 name: string; 31 loaded: boolean; 32 expectedNumMainContent: number; 33 expectedNumSpinner: number; 34 } 35 const sampleEnvData: dataEnvT[] = [ 36 { 37 name: 'renders main', 38 loaded: true, 39 expectedNumMainContent: 1, 40 expectedNumSpinner: 0, 41 }, 42 { 43 name: 'renders spinner', 44 loaded: false, 45 expectedNumMainContent: 0, 46 expectedNumSpinner: 1, 47 }, 48 ]; 49 describe.each(sampleEnvData)(`Renders ProductVersionPage`, (testcase) => { 50 it(testcase.name, () => { 51 fakeLoadEverything(testcase.loaded); 52 const { container } = getWrapper(); 53 expect(container.getElementsByClassName('main-content')).toHaveLength(testcase.expectedNumMainContent); 54 expect(container.getElementsByClassName('spinner')).toHaveLength(testcase.expectedNumSpinner); 55 }); 56 }); 57 });