From 97dcd3fb0a3d632a9454cf1b065b6b2d6ab7657c Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Wed, 26 Jul 2023 13:06:22 +0200 Subject: [PATCH] Add patch view test --- .../server/src/api/routes/tests/row.spec.ts | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/packages/server/src/api/routes/tests/row.spec.ts b/packages/server/src/api/routes/tests/row.spec.ts index eb86fd9d3f..0e8f574742 100644 --- a/packages/server/src/api/routes/tests/row.spec.ts +++ b/packages/server/src/api/routes/tests/row.spec.ts @@ -5,7 +5,7 @@ tk.freeze(timestamp) import { outputProcessing } from "../../../utilities/rowProcessor" import * as setup from "./utilities" const { basicRow } = setup.structures -import { context, db, tenancy } from "@budibase/backend-core" +import { context, tenancy } from "@budibase/backend-core" import { quotas } from "@budibase/pro" import { QuotaUsageType, @@ -439,6 +439,35 @@ describe("/rows", () => { await assertRowUsage(rowUsage) await assertQueryUsage(queryUsage) }) + + describe("view row", () => { + it("should not edit fields that don't belong to the view", async () => { + const existing = await config.createRow() + const view = await config.api.viewV2.create({ + columns: { name: { visible: true } }, + }) + const searchResponse = await config.api.viewV2.search(view.id) + + const [row] = searchResponse.body.rows as Row[] + + const res = await config.api.row.patch(table._id!, { + ...row, + name: "Updated Name", + description: "Updated Description", + }) + + const savedRow = await loadRow(res.body._id, table._id!) + + expect(savedRow.body).toEqual({ + ...existing, + name: "Updated Name", + _rev: expect.anything(), + createdAt: expect.anything(), + updatedAt: expect.anything(), + }) + expect(savedRow.body.description).not.toEqual("Updated Description") + }) + }) }) describe("destroy", () => {