From 3f302d300ec19759513fe1ecbcdb82ac6d4be5f1 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Tue, 12 Mar 2024 11:09:16 +0100 Subject: [PATCH] Add test, account holder cannot be removed --- .../src/api/routes/global/tests/scim.spec.ts | 20 +++++++++++++++++++ packages/worker/src/tests/api/scim/shared.ts | 8 ++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/packages/worker/src/api/routes/global/tests/scim.spec.ts b/packages/worker/src/api/routes/global/tests/scim.spec.ts index 3d5a884579..ad43f089db 100644 --- a/packages/worker/src/api/routes/global/tests/scim.spec.ts +++ b/packages/worker/src/api/routes/global/tests/scim.spec.ts @@ -2,6 +2,7 @@ import tk from "timekeeper" import _ from "lodash" import { generator, mocks, structures } from "@budibase/backend-core/tests" import { + CloudAccount, ScimCreateUserRequest, ScimGroupResponse, ScimUpdateRequest, @@ -604,6 +605,25 @@ describe("scim", () => { expect(events.user.deleted).toBeCalledTimes(1) }) + + it("an account holder cannot be removed even when synched", async () => { + const account: CloudAccount = { + ...structures.accounts.account(), + budibaseUserId: user.id, + email: user.emails![0].value, + } + mocks.accounts.getAccount.mockResolvedValue(account) + + await deleteScimUser(user.id, { + expect: { + message: "Account holder cannot be deleted", + status: 400, + error: { code: "http" }, + }, + }) + + await config.api.scimUsersAPI.find(user.id, { expect: 200 }) + }) }) }) diff --git a/packages/worker/src/tests/api/scim/shared.ts b/packages/worker/src/tests/api/scim/shared.ts index 1b064b8f41..546a940093 100644 --- a/packages/worker/src/tests/api/scim/shared.ts +++ b/packages/worker/src/tests/api/scim/shared.ts @@ -1,13 +1,17 @@ import TestConfiguration from "../../TestConfiguration" import { TestAPI } from "../base" -const defaultConfig = { +const defaultConfig: RequestSettings = { expect: 200, setHeaders: true, skipContentTypeCheck: false, } -export type RequestSettings = typeof defaultConfig +export type RequestSettings = { + expect: number | object + setHeaders: boolean + skipContentTypeCheck: boolean +} export abstract class ScimTestAPI extends TestAPI { constructor(config: TestConfiguration) {