Patch endpoint
This commit is contained in:
parent
7c719df895
commit
3500aabc8a
|
@ -226,4 +226,58 @@ describe("/api/global/scim/v2/users", () => {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe("PATCH /api/global/scim/v2/users", () => {
|
||||||
|
const patchScimUser = config.api.scimUsersAPI.patch
|
||||||
|
|
||||||
|
let user: ScimUser
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
const body = createScimCreateUserRequest()
|
||||||
|
|
||||||
|
user = await config.api.scimUsersAPI.post({ body })
|
||||||
|
})
|
||||||
|
|
||||||
|
it("unauthorised calls are not allowed", async () => {
|
||||||
|
const response = await patchScimUser({} as any, {
|
||||||
|
setHeaders: false,
|
||||||
|
expect: 403,
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(response).toEqual({ message: "Tenant id not set", status: 403 })
|
||||||
|
})
|
||||||
|
|
||||||
|
it("cannot be called when feature is disabled", async () => {
|
||||||
|
mocks.licenses.useCloudFree()
|
||||||
|
const response = await patchScimUser({} as any, { expect: 400 })
|
||||||
|
|
||||||
|
expect(response).toEqual(featureDisabledResponse)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("an existing user can be updated", async () => {
|
||||||
|
const body: ScimUpdateRequest = {
|
||||||
|
schemas: ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
|
||||||
|
Operations: [
|
||||||
|
{
|
||||||
|
op: "add",
|
||||||
|
path: "string",
|
||||||
|
value: "string",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
const response = await patchScimUser({ id: user.id, body })
|
||||||
|
|
||||||
|
const expectedScimUser = { ...user }
|
||||||
|
expect(response).toEqual(expectedScimUser)
|
||||||
|
|
||||||
|
const persistedUsers = await config.api.scimUsersAPI.get()
|
||||||
|
expect(persistedUsers).toEqual(
|
||||||
|
expect.objectContaining({
|
||||||
|
totalResults: 1,
|
||||||
|
Resources: [expectedScimUser],
|
||||||
|
})
|
||||||
|
)
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -20,7 +20,7 @@ export class ScimUsersAPI extends TestAPI {
|
||||||
|
|
||||||
#createRequest = (
|
#createRequest = (
|
||||||
url: string,
|
url: string,
|
||||||
method: "get" | "post",
|
method: "get" | "post" | "patch",
|
||||||
requestSettings?: Partial<RequestSettings>,
|
requestSettings?: Partial<RequestSettings>,
|
||||||
body?: object
|
body?: object
|
||||||
) => {
|
) => {
|
||||||
|
@ -83,4 +83,24 @@ export class ScimUsersAPI extends TestAPI {
|
||||||
|
|
||||||
return res.body as ScimUserResponse
|
return res.body as ScimUserResponse
|
||||||
}
|
}
|
||||||
|
|
||||||
|
patch = async (
|
||||||
|
{
|
||||||
|
id,
|
||||||
|
body,
|
||||||
|
}: {
|
||||||
|
id: string
|
||||||
|
body: ScimUpdateRequest
|
||||||
|
},
|
||||||
|
requestSettings?: Partial<RequestSettings>
|
||||||
|
) => {
|
||||||
|
const res = await this.#createRequest(
|
||||||
|
`/api/global/scim/v2/users/${id}`,
|
||||||
|
"patch",
|
||||||
|
requestSettings,
|
||||||
|
body
|
||||||
|
)
|
||||||
|
|
||||||
|
return res.body as ScimUser
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue