From 96be0eed554f6f113afb59b112fd7709305c8f7d Mon Sep 17 00:00:00 2001 From: Jackie Chan Date: Thu, 24 Oct 2024 15:28:26 -0700 Subject: [PATCH] feat(metadata-taxonomy): Fix tests --- .../__tests__/metadataTaxonomyFetcher.test.ts | 38 ++++++++++++++----- .../fetchers/metadataTaxonomyFetcher.ts | 8 +++- 2 files changed, 34 insertions(+), 12 deletions(-) diff --git a/src/elements/content-sidebar/__tests__/metadataTaxonomyFetcher.test.ts b/src/elements/content-sidebar/__tests__/metadataTaxonomyFetcher.test.ts index 1570f42f98..c800471ff5 100644 --- a/src/elements/content-sidebar/__tests__/metadataTaxonomyFetcher.test.ts +++ b/src/elements/content-sidebar/__tests__/metadataTaxonomyFetcher.test.ts @@ -96,6 +96,7 @@ describe('metadataTaxonomyFetcher', () => { }); describe('metadataNodeTaxonomiesFetcher', () => { + const fileID = '12345'; const scope = 'global'; const taxonomyKey = 'taxonomy_123'; const nodeID = 'node_abc'; @@ -112,10 +113,16 @@ describe('metadataNodeTaxonomiesFetcher', () => { }); test('should fetch taxonomy levels and node data and return formatted data', async () => { - const mockTaxonomyLevels = [ - { level: 1, displayName: 'Level 1', description: 'Description 1' }, - { level: 2, displayName: 'Level 2', description: 'Description 2' }, - ]; + const mockTaxonomyLevels = { + displayName: 'Geography', + namespace: 'my_enterprise', + id: 'my_id', + key: 'geography', + levels: [ + { level: 1, displayName: 'Level 1', description: 'Description 1' }, + { level: 2, displayName: 'Level 2', description: 'Description 2' }, + ], + }; const mockTaxonomyNode = { id: 'node_abc', @@ -127,7 +134,7 @@ describe('metadataNodeTaxonomiesFetcher', () => { apiMock.getMetadataAPI(false).getMetadataTaxonomyLevels.mockResolvedValue(mockTaxonomyLevels); apiMock.getMetadataAPI(false).getMetadataTaxonomyNode.mockResolvedValue(mockTaxonomyNode); - const result = await metadataTaxonomyNodeAncestorsFetcher(apiMock, scope, taxonomyKey, nodeID); + const result = await metadataTaxonomyNodeAncestorsFetcher(apiMock, fileID, scope, taxonomyKey, nodeID); const expectedResult = [ { @@ -147,8 +154,13 @@ describe('metadataNodeTaxonomiesFetcher', () => { ]; expect(apiMock.getMetadataAPI).toHaveBeenCalledWith(false); - expect(apiMock.getMetadataAPI(false).getMetadataTaxonomyLevels).toHaveBeenCalledWith(scope, taxonomyKey); + expect(apiMock.getMetadataAPI(false).getMetadataTaxonomyLevels).toHaveBeenCalledWith( + fileID, + scope, + taxonomyKey, + ); expect(apiMock.getMetadataAPI(false).getMetadataTaxonomyNode).toHaveBeenCalledWith( + fileID, scope, taxonomyKey, nodeID, @@ -158,7 +170,13 @@ describe('metadataNodeTaxonomiesFetcher', () => { }); test('should handle empty ancestors array', async () => { - const mockTaxonomyLevels = [{ level: 1, displayName: 'Level 1', description: 'Description 1' }]; + const mockTaxonomyLevels = { + displayName: 'Geography', + namespace: 'my_enterprise', + id: 'my_id', + key: 'geography', + levels: [{ level: 1, displayName: 'Level 1', description: 'Description 1' }], + }; const mockTaxonomyNode = { id: 'node_abc', @@ -170,7 +188,7 @@ describe('metadataNodeTaxonomiesFetcher', () => { apiMock.getMetadataAPI(false).getMetadataTaxonomyLevels.mockResolvedValue(mockTaxonomyLevels); apiMock.getMetadataAPI(false).getMetadataTaxonomyNode.mockResolvedValue(mockTaxonomyNode); - const result = await metadataTaxonomyNodeAncestorsFetcher(apiMock, scope, taxonomyKey, nodeID); + const result = await metadataTaxonomyNodeAncestorsFetcher(apiMock, fileID, scope, taxonomyKey, nodeID); const expectedResult = [ { @@ -189,7 +207,7 @@ describe('metadataNodeTaxonomiesFetcher', () => { const error = new Error('API Error'); apiMock.getMetadataAPI(false).getMetadataTaxonomyLevels.mockRejectedValue(error); - await expect(metadataTaxonomyNodeAncestorsFetcher(apiMock, scope, taxonomyKey, nodeID)).rejects.toThrow( + await expect(metadataTaxonomyNodeAncestorsFetcher(apiMock, fileID, scope, taxonomyKey, nodeID)).rejects.toThrow( 'API Error', ); }); @@ -198,7 +216,7 @@ describe('metadataNodeTaxonomiesFetcher', () => { const error = new Error('API Error'); apiMock.getMetadataAPI(false).getMetadataTaxonomyNode.mockRejectedValue(error); - await expect(metadataTaxonomyNodeAncestorsFetcher(apiMock, scope, taxonomyKey, nodeID)).rejects.toThrow( + await expect(metadataTaxonomyNodeAncestorsFetcher(apiMock, fileID, scope, taxonomyKey, nodeID)).rejects.toThrow( 'API Error', ); }); diff --git a/src/elements/content-sidebar/fetchers/metadataTaxonomyFetcher.ts b/src/elements/content-sidebar/fetchers/metadataTaxonomyFetcher.ts index f7fd59fb36..b08a796ff0 100644 --- a/src/elements/content-sidebar/fetchers/metadataTaxonomyFetcher.ts +++ b/src/elements/content-sidebar/fetchers/metadataTaxonomyFetcher.ts @@ -27,15 +27,19 @@ export const metadataTaxonomyFetcher = async ( export const metadataTaxonomyNodeAncestorsFetcher = async ( api: API, + fileID: string, scope: string, taxonomyKey: string, nodeID: string, ) => { const [metadataTaxonomyLevels, metadataTaxonomyNode] = await Promise.all([ - api.getMetadataAPI(false).getMetadataTaxonomyLevels(scope, taxonomyKey), - api.getMetadataAPI(false).getMetadataTaxonomyNode(scope, taxonomyKey, nodeID, true), + api.getMetadataAPI(false).getMetadataTaxonomyLevels(fileID, scope, taxonomyKey), + api.getMetadataAPI(false).getMetadataTaxonomyNode(fileID, scope, taxonomyKey, nodeID, true), ]); + if (!metadataTaxonomyLevels?.levels) { + return []; + } // Create a hashmap of levels to easily hydrate with data from metadataTaxonomyNode const levelsMap = new Map(); for (const item of metadataTaxonomyLevels.levels) {