diff --git a/packages/server/src/api/routes/tests/table.spec.ts b/packages/server/src/api/routes/tests/table.spec.ts index b32983b8ad..67b1d64ae1 100644 --- a/packages/server/src/api/routes/tests/table.spec.ts +++ b/packages/server/src/api/routes/tests/table.spec.ts @@ -1054,5 +1054,30 @@ describe.each([ }) }) }) + + describe("validateExistingTableImport", () => { + it("can validate basic imports", async () => { + const table = await config.api.table.save( + tableForDatasource(datasource, { + primary: ["id"], + schema: basicSchema, + }) + ) + const result = await config.api.table.validateExistingTableImport({ + tableId: table._id, + rows: [{ id: generator.natural(), name: generator.first() }], + }) + + expect(result).toEqual({ + allValid: true, + errors: {}, + invalidColumns: [], + schemaValidation: { + id: true, + name: true, + }, + }) + }) + }) }) }) diff --git a/packages/server/src/tests/utilities/api/table.ts b/packages/server/src/tests/utilities/api/table.ts index c42247dc59..9d4a92250a 100644 --- a/packages/server/src/tests/utilities/api/table.ts +++ b/packages/server/src/tests/utilities/api/table.ts @@ -8,6 +8,7 @@ import { SaveTableResponse, Table, TableSchema, + ValidateTableImportRequest, ValidateTableImportResponse, } from "@budibase/types" import { Expectations, TestAPI } from "./base" @@ -85,4 +86,17 @@ export class TableAPI extends TestAPI { } ) } + + validateExistingTableImport = async ( + body: ValidateTableImportRequest, + expectations?: Expectations + ): Promise => { + return await this._post( + `/api/tables/validateExistingTableImport`, + { + body, + expectations, + } + ) + } }