Fix case where facet lookup returns undefined

Signed-off-by: Jasper Boeijenga <jboeijenga@gmail.com>
This commit is contained in:
Jasper Boeijenga
2024-08-20 09:29:51 +02:00
parent 5143616ed5
commit ede5a5cec2
2 changed files with 16 additions and 1 deletions
@@ -70,6 +70,21 @@ describe('useFacetsEntities', () => {
expect(result.current[0]).toEqual({ value: { items: [] }, loading: true });
});
it(`should return empty response when facet is not present`, async () => {
mockedGetEntityFacets.mockResolvedValueOnce({
facets: { 'metadata.tags': [{ value: 'tag', count: 1 }] },
});
mockedGetEntitiesByRefs.mockResolvedValueOnce({ items: [] });
const { result } = renderHook(() => useFacetsEntities({ enabled: true }));
result.current[1]({ text: '' });
await waitFor(() => {
expect(result.current[0]).toEqual({
value: { items: [] },
loading: false,
});
});
});
it(`should return the owners`, async () => {
const entityRefs = ['component:default/e1', 'component:default/e2'];
mockedGetEntityFacets.mockResolvedValue(facetsFromEntityRefs(entityRefs));
@@ -52,7 +52,7 @@ export function useFacetsEntities({ enabled }: { enabled: boolean }) {
const facetsResponse = await catalogApi.getEntityFacets({
facets: [facet],
});
const entityRefs = facetsResponse.facets[facet].map(e => e.value);
const entityRefs = facetsResponse.facets[facet]?.map(e => e.value) ?? [];
return catalogApi
.getEntitiesByRefs({ entityRefs })