From a4caad86d1dcc8f3358b321f97c1cb06dbbd4702 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Thu, 27 Mar 2025 14:59:36 +0000 Subject: [PATCH] Add test for string imports into array fields --- .../api/controllers/table/tests/utils.spec.ts | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/packages/server/src/api/controllers/table/tests/utils.spec.ts b/packages/server/src/api/controllers/table/tests/utils.spec.ts index f9d6d707e2..1fe459828c 100644 --- a/packages/server/src/api/controllers/table/tests/utils.spec.ts +++ b/packages/server/src/api/controllers/table/tests/utils.spec.ts @@ -1,4 +1,9 @@ -import { AIOperationEnum, AutoFieldSubType, FieldType } from "@budibase/types" +import { + AIOperationEnum, + AutoFieldSubType, + FieldType, + JsonFieldSubType, +} from "@budibase/types" import TestConfiguration from "../../../../tests/utilities/TestConfiguration" import { importToRows } from "../utils" @@ -152,5 +157,33 @@ describe("utils", () => { ]) }) }) + + it("coerces strings into arrays for array fields", async () => { + await config.doInContext(config.appId, async () => { + const table = await config.createTable({ + name: "table", + type: "table", + schema: { + colours: { + name: "colours", + type: FieldType.ARRAY, + constraints: { + type: JsonFieldSubType.ARRAY, + inclusion: ["red"], + }, + }, + }, + }) + + const data = [{ colours: "red" }] + + const result = await importToRows(data, table, config.user?._id) + expect(result).toEqual([ + expect.objectContaining({ + colours: ["red"], + }), + ]) + }) + }) }) })