From 91ffc2ade2c5e8739ddc899db174700aeeb354b1 Mon Sep 17 00:00:00 2001 From: MT Lewis Date: Fri, 28 Jan 2022 10:29:27 +0000 Subject: [PATCH] catalog: update DefaultCatalogPage test This test appears to be checking for a regression in which the filter reset from starred to owned after starring an entity. As a precursor, it tried to select all three possible filters, but now it's no longer possible to select filters that don't have any matching entities. Now that the behaviour of menu items when there are no items in that filter has changed, this commit updates the test to confirm that the menu item starts disabled, and then enables when an entity is starred. Signed-off-by: MT Lewis --- .../components/UserListPicker/UserListPicker.tsx | 8 ++------ .../CatalogPage/DefaultCatalogPage.test.tsx | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/plugins/catalog-react/src/components/UserListPicker/UserListPicker.tsx b/plugins/catalog-react/src/components/UserListPicker/UserListPicker.tsx index 30102681d7..d731a185fc 100644 --- a/plugins/catalog-react/src/components/UserListPicker/UserListPicker.tsx +++ b/plugins/catalog-react/src/components/UserListPicker/UserListPicker.tsx @@ -231,6 +231,7 @@ export const UserListPicker = ({ selected={item.id === filters.user?.value} className={classes.menuItem} disabled={filterCounts[item.id] === 0} + data-testid={`user-picker-${item.id}`} > {item.icon && ( @@ -238,12 +239,7 @@ export const UserListPicker = ({ )} - - {item.label} - + {item.label} {filterCounts[item.id] ?? '-'} diff --git a/plugins/catalog/src/components/CatalogPage/DefaultCatalogPage.test.tsx b/plugins/catalog/src/components/CatalogPage/DefaultCatalogPage.test.tsx index 135a2a590d..20acff3c50 100644 --- a/plugins/catalog/src/components/CatalogPage/DefaultCatalogPage.test.tsx +++ b/plugins/catalog/src/components/CatalogPage/DefaultCatalogPage.test.tsx @@ -263,10 +263,12 @@ describe('DefaultCatalogPage', () => { const { getByTestId } = await renderWrapped(); fireEvent.click(getByTestId('user-picker-owned')); await expect(screen.findByText(/Owned \(1\)/)).resolves.toBeInTheDocument(); - fireEvent.click(screen.getByTestId('user-picker-starred')); - await expect( - screen.findByText(/Starred \(0\)/), - ).resolves.toBeInTheDocument(); + // The "Starred" menu option should initially be disabled, since there + // aren't any starred entities. + await expect(screen.getByTestId('user-picker-starred')).toHaveAttribute( + 'aria-disabled', + 'true', + ); fireEvent.click(screen.getByTestId('user-picker-all')); await expect(screen.findByText(/All \(2\)/)).resolves.toBeInTheDocument(); @@ -274,6 +276,12 @@ describe('DefaultCatalogPage', () => { fireEvent.click(starredIcons[0]); await expect(screen.findByText(/All \(2\)/)).resolves.toBeInTheDocument(); + // Now that we've starred an entity, the "Starred" menu option should be + // enabled. + await expect(screen.getByTestId('user-picker-starred')).not.toHaveAttribute( + 'aria-disabled', + 'true', + ); fireEvent.click(screen.getByTestId('user-picker-starred')); await expect( screen.findByText(/Starred \(1\)/),