go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/analysis/frontend/ui/src/components/top_bar/collapsed_menu/collapsed_menu.test.tsx (about) 1 // Copyright 2022 The LUCI Authors. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 import '@testing-library/jest-dom'; 16 17 import { Home } from '@mui/icons-material'; 18 import { 19 fireEvent, 20 screen, 21 } from '@testing-library/react'; 22 23 import { AppBarPage } from '@/components/top_bar/top_bar'; 24 import { TopBarContextProvider } from '@/components/top_bar/top_bar_context'; 25 import { renderWithRouter } from '@/testing_tools/libs/mock_router'; 26 27 import CollapsedMenu from './collapsed_menu'; 28 29 describe('test CollapsedMenu component', () => { 30 const pages: AppBarPage[] = [ 31 { 32 title: 'Clusters', 33 url: '/Clusters', 34 icon: Home, 35 }, 36 ]; 37 38 it('given a set of pages, then should display them in a menu', async () => { 39 renderWithRouter( 40 <CollapsedMenu pages={pages}/>, 41 ); 42 43 await screen.findByText('LUCI Analysis'); 44 45 expect(screen.getByText('Clusters')).toBeInTheDocument(); 46 }); 47 48 it('when clicking on menu button then the menu should be visible', async () => { 49 renderWithRouter( 50 <TopBarContextProvider > 51 <CollapsedMenu pages={pages}/> 52 </TopBarContextProvider>, 53 ); 54 55 await screen.findByText('LUCI Analysis'); 56 57 expect(screen.getByTestId('collapsed-menu')).not.toBeVisible(); 58 59 await fireEvent.click(screen.getByTestId('collapsed-menu-button')); 60 61 expect(screen.getByTestId('collapsed-menu')).toBeVisible(); 62 }); 63 });