From c9c59d0bf101293326d878620cfeb5d8a151226f Mon Sep 17 00:00:00 2001 From: Aramis Date: Fri, 19 Jan 2024 09:49:37 -0500 Subject: [PATCH] add test cases for using search text Signed-off-by: Aramis --- .../src/hooks/useEntityListProvider.test.tsx | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/plugins/catalog-react/src/hooks/useEntityListProvider.test.tsx b/plugins/catalog-react/src/hooks/useEntityListProvider.test.tsx index f6881d4a80..42c56eb4c9 100644 --- a/plugins/catalog-react/src/hooks/useEntityListProvider.test.tsx +++ b/plugins/catalog-react/src/hooks/useEntityListProvider.test.tsx @@ -33,6 +33,7 @@ import { catalogApiRef } from '../api'; import { starredEntitiesApiRef, MockStarredEntitiesApi } from '../apis'; import { EntityKindFilter, + EntityTextFilter, EntityTypeFilter, EntityUserFilter, } from '../filters'; @@ -171,6 +172,30 @@ describe('', () => { }); }); + it('ignores search text when not paginating', async () => { + const { result } = renderHook(() => useEntityList(), { + wrapper: createWrapper({ pagination }), + initialProps: { + userFilter: 'all', + }, + }); + + act(() => + result.current.updateFilters({ + text: new EntityTextFilter('1'), + }), + ); + + await waitFor(() => { + expect(result.current.backendEntities.length).toBe(2); + expect(result.current.entities.length).toBe(1); + expect(mockCatalogApi.getEntities).toHaveBeenCalledTimes(1); + expect(mockCatalogApi.getEntities).toHaveBeenCalledWith({ + filter: { kind: 'component' }, + }); + }); + }); + it('resolves query param filter values', async () => { const query = qs.stringify({ filters: { kind: 'component', type: 'service' }, @@ -289,6 +314,34 @@ describe('', () => { jest.clearAllMocks(); }); + it('sends search text to the backend', async () => { + const { result } = renderHook(() => useEntityList(), { + wrapper: createWrapper({ pagination }), + initialProps: { + userFilter: 'all', + }, + }); + + act(() => + result.current.updateFilters({ + text: new EntityTextFilter('2'), + }), + ); + + await waitFor(() => { + expect(result.current.entities.length).toBe(1); + expect(mockCatalogApi.queryEntities).toHaveBeenCalledTimes(1); + expect(mockCatalogApi.queryEntities).toHaveBeenCalledWith({ + filter: { kind: 'component' }, + limit, + orderFields, + fullTextFilter: { + term: '2', + }, + }); + }); + }); + it('should send backend filters', async () => { const { result } = renderHook(() => useEntityList(), { wrapper: createWrapper({ pagination }),