From 0605b14715a3cd17cbaeda778d209a5a7d37568e Mon Sep 17 00:00:00 2001 From: Benjamin Kane Date: Mon, 23 Sep 2024 18:44:07 -0400 Subject: [PATCH] fix full path regression --- .../src/elements/common/bubbles.test.ts | 30 +++++++++++++++++-- .../looker/src/elements/common/bubbles.ts | 6 ++-- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/app/packages/looker/src/elements/common/bubbles.test.ts b/app/packages/looker/src/elements/common/bubbles.test.ts index 16477b4145..7dea280e6f 100644 --- a/app/packages/looker/src/elements/common/bubbles.test.ts +++ b/app/packages/looker/src/elements/common/bubbles.test.ts @@ -4,6 +4,7 @@ import { DYNAMIC_EMBEDDED_DOCUMENT_PATH, EMBEDDED_DOCUMENT_FIELD, LIST_FIELD, + STRING_FIELD, } from "@fiftyone/utilities"; import { getBubbles, getField, unwind } from "./bubbles"; @@ -28,7 +29,7 @@ describe("text bubble tests", () => { }); it("getBubble gets values for path", () => { - const field = { + const listField = { ...FIELD_DATA, dbField: "my", ftype: LIST_FIELD, @@ -44,13 +45,38 @@ describe("text bubble tests", () => { getBubbles( "my", { my: [{ list: "value" }] }, + { + my: { + ...listField, + }, + } + ) + ).toStrictEqual([listField, [{ list: "value" }]]); + + const field = { + ...FIELD_DATA, + dbField: "my", + ftype: EMBEDDED_DOCUMENT_FIELD, + embeddedDocType: DYNAMIC_EMBEDDED_DOCUMENT_PATH, + fields: { + value: { + ...FIELD_DATA, + dbField: "value", + ftype: STRING_FIELD, + }, + }, + }; + expect( + getBubbles( + "my.value", + { my: { value: "value" } }, { my: { ...field, }, } ) - ).toStrictEqual([field, [{ list: "value" }]]); + ).toStrictEqual([field.fields.value, ["value"]]); }); it("getField gets field from a path keys", () => { diff --git a/app/packages/looker/src/elements/common/bubbles.ts b/app/packages/looker/src/elements/common/bubbles.ts index 62bafa44f4..883bbf8b5d 100644 --- a/app/packages/looker/src/elements/common/bubbles.ts +++ b/app/packages/looker/src/elements/common/bubbles.ts @@ -18,10 +18,10 @@ type Data = { [key: string]: unknown }; export const getBubbles = ( path: string, - sample: Data, + data: Data, input: Schema ): [Field, unknown[]] => { - const out = parseSample(path.split("."), sample, input); + const out = parseSample(path.split("."), data, input); let field: Field = null; for (const key of out.keys.slice(0, 2)) { @@ -69,7 +69,7 @@ export const getBubbles = ( if (out.values?.length && field) { out.values = unwind(field.dbField, out.values) || []; - break; + console.log(path, out.values); } out.schema = field ? field.fields : null;