From aac6d44cc48373f4bed368266956cf14f136b37c Mon Sep 17 00:00:00 2001 From: jona Date: Tue, 22 Apr 2025 15:58:35 +0300 Subject: [PATCH] :white_check_mark: (useEntityListProvider.test) Add tests to omit owners filter for user and group kinds Signed-off-by: Jona --- .../src/hooks/useEntityListProvider.test.tsx | 135 ++++++++++++++++++ 1 file changed, 135 insertions(+) diff --git a/plugins/catalog-react/src/hooks/useEntityListProvider.test.tsx b/plugins/catalog-react/src/hooks/useEntityListProvider.test.tsx index 45ed6079cc..de85fa1042 100644 --- a/plugins/catalog-react/src/hooks/useEntityListProvider.test.tsx +++ b/plugins/catalog-react/src/hooks/useEntityListProvider.test.tsx @@ -32,6 +32,7 @@ import { catalogApiRef } from '../api'; import { MockStarredEntitiesApi, starredEntitiesApiRef } from '../apis'; import { EntityKindFilter, + EntityOwnerFilter, EntityTextFilter, EntityTypeFilter, EntityUserFilter, @@ -298,6 +299,48 @@ describe('', () => { expect(result.current.pageInfo).toBeUndefined(); }); + + it('should omit owners filter when kind is "user"', async () => { + const { result } = renderHook(() => useEntityList(), { + wrapper: createWrapper({ pagination }), + }); + + act(() => { + result.current.updateFilters({ + kind: new EntityKindFilter('user', 'User'), + owners: new EntityOwnerFilter(['user:default/guest']), + }); + }); + + await waitFor(() => { + expect(mockCatalogApi.getEntities).toHaveBeenCalled(); + }); + + expect(mockCatalogApi.getEntities).toHaveBeenCalledWith({ + filter: { kind: 'user' }, + }); + }); + + it('should omit owners filter when kind is "group"', async () => { + const { result } = renderHook(() => useEntityList(), { + wrapper: createWrapper({ pagination }), + }); + + act(() => { + result.current.updateFilters({ + kind: new EntityKindFilter('group', 'Group'), + owners: new EntityOwnerFilter(['group:default/team-a']), + }); + }); + + await waitFor(() => { + expect(mockCatalogApi.getEntities).toHaveBeenCalled(); + }); + + expect(mockCatalogApi.getEntities).toHaveBeenCalledWith({ + filter: { kind: 'group' }, + }); + }); }); describe('', () => { @@ -552,6 +595,52 @@ describe('', () => { }); }); }); + + it('should omit owners filter when kind is "user"', async () => { + const { result } = renderHook(() => useEntityList(), { + wrapper: createWrapper({ pagination }), + }); + + act(() => { + result.current.updateFilters({ + kind: new EntityKindFilter('user', 'User'), + owners: new EntityOwnerFilter(['user:default/guest']), + }); + }); + + await waitFor(() => { + expect(mockCatalogApi.queryEntities).toHaveBeenCalled(); + }); + + expect(mockCatalogApi.queryEntities).toHaveBeenCalledWith( + expect.objectContaining({ + filter: { kind: 'user' }, + }), + ); + }); + + it('should omit owners filter when kind is "group"', async () => { + const { result } = renderHook(() => useEntityList(), { + wrapper: createWrapper({ pagination }), + }); + + act(() => { + result.current.updateFilters({ + kind: new EntityKindFilter('group', 'Group'), + owners: new EntityOwnerFilter(['group:default/team-a']), + }); + }); + + await waitFor(() => { + expect(mockCatalogApi.queryEntities).toHaveBeenCalled(); + }); + + expect(mockCatalogApi.queryEntities).toHaveBeenCalledWith( + expect.objectContaining({ + filter: { kind: 'group' }, + }), + ); + }); }); }); @@ -801,4 +890,50 @@ describe(``, () => { expect(result.current.error).toBeDefined(); }); }); + + it('should omit owners filter when kind is "user"', async () => { + const { result } = renderHook(() => useEntityList(), { + wrapper: createWrapper({ pagination }), + }); + + act(() => { + result.current.updateFilters({ + kind: new EntityKindFilter('user', 'User'), + owners: new EntityOwnerFilter(['user:default/guest']), + }); + }); + + await waitFor(() => { + expect(mockCatalogApi.queryEntities).toHaveBeenCalled(); + }); + + expect(mockCatalogApi.queryEntities).toHaveBeenCalledWith( + expect.objectContaining({ + filter: { kind: 'user' }, + }), + ); + }); + + it('should omit owners filter when kind is "group"', async () => { + const { result } = renderHook(() => useEntityList(), { + wrapper: createWrapper({ pagination }), + }); + + act(() => { + result.current.updateFilters({ + kind: new EntityKindFilter('group', 'Group'), + owners: new EntityOwnerFilter(['group:default/team-a']), + }); + }); + + await waitFor(() => { + expect(mockCatalogApi.queryEntities).toHaveBeenCalled(); + }); + + expect(mockCatalogApi.queryEntities).toHaveBeenCalledWith( + expect.objectContaining({ + filter: { kind: 'group' }, + }), + ); + }); });