From 7f1d64c1cc96436e1237b18df923a76016f04fff Mon Sep 17 00:00:00 2001 From: Julianne Crawford Date: Mon, 1 Jul 2024 08:01:45 -0500 Subject: [PATCH] fix: getIncludesAndReferencesQuery accounts for no association group (#1571) --- .../internal/getIncludesAndReferencesQuery.ts | 8 ++++++++ .../internal/getIncludesAndReferencesQuery.test.ts | 12 +++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/common/src/associations/internal/getIncludesAndReferencesQuery.ts b/packages/common/src/associations/internal/getIncludesAndReferencesQuery.ts index 6cebb27e4bd..d28a3399694 100644 --- a/packages/common/src/associations/internal/getIncludesAndReferencesQuery.ts +++ b/packages/common/src/associations/internal/getIncludesAndReferencesQuery.ts @@ -28,6 +28,14 @@ export const getIncludesAndReferencesQuery = async ( context: IArcGISContext ): Promise => { if (isParent) { + /** + * 0. exit early if the parent's association group + * hasn't been created yet - there can be no associations + */ + if (!getProp(entity, "associations")) { + return null; + } + /** * 1. build query that returns child entities WITH a * typeKeyword reference to the parent diff --git a/packages/common/test/associations/internal/getIncludesAndReferencesQuery.test.ts b/packages/common/test/associations/internal/getIncludesAndReferencesQuery.test.ts index ff3cbbb1109..c1dbbb87e4a 100644 --- a/packages/common/test/associations/internal/getIncludesAndReferencesQuery.test.ts +++ b/packages/common/test/associations/internal/getIncludesAndReferencesQuery.test.ts @@ -1,4 +1,4 @@ -import { cloneObject } from "../../../src"; +import { HubEntity, cloneObject } from "../../../src"; import { IArcGISContext } from "../../../src/ArcGISContext"; import { getIncludesAndReferencesQuery } from "../../../src/associations/internal/getIncludesAndReferencesQuery"; import { MOCK_PARENT_ENTITY, MOCK_CHILD_ENTITY } from "../fixtures"; @@ -6,6 +6,16 @@ import * as ItemsModule from "@esri/arcgis-rest-portal"; describe("getIncludesAndReferencesQuery:", () => { describe("from the parent entity perspective", () => { + it("returns null if the parent's association group hasn't been created yet", async () => { + const query = await getIncludesAndReferencesQuery( + {} as HubEntity, + "project", + true, + {} as IArcGISContext + ); + + expect(query).toBeNull(); + }); it("returns a valid IQuery to fetch child entities", async () => { const query = await getIncludesAndReferencesQuery( MOCK_PARENT_ENTITY,