diff --git a/geonode_mapstore_client/client/js/utils/ResourceUtils.js b/geonode_mapstore_client/client/js/utils/ResourceUtils.js index 9e91dcc415..cfb256f8ff 100644 --- a/geonode_mapstore_client/client/js/utils/ResourceUtils.js +++ b/geonode_mapstore_client/client/js/utils/ResourceUtils.js @@ -307,7 +307,7 @@ export const getResourceStatuses = (resource, userInfo) => { isDeleting, isCopying, items: [ - ...(resource.advertised === false ? [{ + ...(resource?.advertised === false ? [{ type: 'icon', tooltipId: 'resourcesCatalog.unadvertised', glyph: 'eye-slash' diff --git a/geonode_mapstore_client/client/js/utils/__tests__/ResourceUtils-test.js b/geonode_mapstore_client/client/js/utils/__tests__/ResourceUtils-test.js index 2029d317c9..862215d0ff 100644 --- a/geonode_mapstore_client/client/js/utils/__tests__/ResourceUtils-test.js +++ b/geonode_mapstore_client/client/js/utils/__tests__/ResourceUtils-test.js @@ -37,10 +37,18 @@ import { canManageResourceSettings, canAccessPermissions, formatResourceLinkUrl, - canEditMap + canEditMap, + getResourceStatuses } from '../ResourceUtils'; describe('Test Resource Utils', () => { + it('getResourceStatuses does not throw for a null resource', () => { + const status = getResourceStatuses(null); + expect(status.isProcessing).toBe(false); + expect(status.isDeleting).toBe(false); + expect(status.isCopying).toBe(false); + expect(status.items).toEqual([]); + }); it('should getViewedResourcePermissions', () => { const data = [{ name: "testType",