Move creators to structures
This commit is contained in:
parent
586275ed89
commit
4ac682a3c2
|
@ -9,3 +9,4 @@ export * as sso from "./sso"
|
||||||
export * as tenant from "./tenants"
|
export * as tenant from "./tenants"
|
||||||
export * as users from "./users"
|
export * as users from "./users"
|
||||||
export { generator } from "./generator"
|
export { generator } from "./generator"
|
||||||
|
export * as scim from "./scim"
|
||||||
|
|
|
@ -0,0 +1,67 @@
|
||||||
|
import { ScimCreateGroupRequest, ScimCreateUserRequest } from "@budibase/types"
|
||||||
|
import { uuid } from "./common"
|
||||||
|
import { generator } from "./generator"
|
||||||
|
|
||||||
|
export function createUserRequest(userData?: {
|
||||||
|
externalId?: string
|
||||||
|
email?: string
|
||||||
|
firstName?: string
|
||||||
|
lastName?: string
|
||||||
|
username?: string
|
||||||
|
}) {
|
||||||
|
const {
|
||||||
|
externalId = uuid(),
|
||||||
|
email = generator.email(),
|
||||||
|
firstName = generator.first(),
|
||||||
|
lastName = generator.last(),
|
||||||
|
username = generator.name(),
|
||||||
|
} = userData || {}
|
||||||
|
|
||||||
|
const user: ScimCreateUserRequest = {
|
||||||
|
schemas: [
|
||||||
|
"urn:ietf:params:scim:schemas:core:2.0:User",
|
||||||
|
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
|
||||||
|
],
|
||||||
|
externalId,
|
||||||
|
userName: username,
|
||||||
|
active: true,
|
||||||
|
emails: [
|
||||||
|
{
|
||||||
|
primary: true,
|
||||||
|
type: "work",
|
||||||
|
value: email,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
meta: {
|
||||||
|
resourceType: "User",
|
||||||
|
},
|
||||||
|
name: {
|
||||||
|
formatted: generator.name(),
|
||||||
|
familyName: lastName,
|
||||||
|
givenName: firstName,
|
||||||
|
},
|
||||||
|
roles: [],
|
||||||
|
}
|
||||||
|
return user
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createGroupRequest(groupData?: {
|
||||||
|
externalId?: string
|
||||||
|
displayName?: string
|
||||||
|
}) {
|
||||||
|
const { externalId = uuid(), displayName = generator.word() } =
|
||||||
|
groupData || {}
|
||||||
|
|
||||||
|
const group: ScimCreateGroupRequest = {
|
||||||
|
schemas: [
|
||||||
|
"urn:ietf:params:scim:schemas:core:2.0:Group",
|
||||||
|
"http://schemas.microsoft.com/2006/11/ResourceManagement/ADSCIM/2.0/Group",
|
||||||
|
],
|
||||||
|
externalId: externalId,
|
||||||
|
displayName: displayName,
|
||||||
|
meta: {
|
||||||
|
resourceType: "Group",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
return group
|
||||||
|
}
|
|
@ -2,38 +2,17 @@ import tk from "timekeeper"
|
||||||
import _ from "lodash"
|
import _ from "lodash"
|
||||||
import { mocks, structures } from "@budibase/backend-core/tests"
|
import { mocks, structures } from "@budibase/backend-core/tests"
|
||||||
import {
|
import {
|
||||||
ScimCreateGroupRequest,
|
|
||||||
ScimGroupResponse,
|
ScimGroupResponse,
|
||||||
ScimUpdateRequest,
|
ScimUpdateRequest,
|
||||||
|
ScimUserResponse,
|
||||||
} from "@budibase/types"
|
} from "@budibase/types"
|
||||||
import { TestConfiguration } from "../../../../../tests"
|
import { TestConfiguration } from "../../../../../tests"
|
||||||
|
|
||||||
mocks.licenses.useScimIntegration()
|
mocks.licenses.useScimIntegration()
|
||||||
|
|
||||||
function createScimCreateGroupRequest(groupData?: {
|
|
||||||
externalId?: string
|
|
||||||
displayName?: string
|
|
||||||
}) {
|
|
||||||
const {
|
|
||||||
externalId = structures.uuid(),
|
|
||||||
displayName = structures.generator.word(),
|
|
||||||
} = groupData || {}
|
|
||||||
|
|
||||||
const group: ScimCreateGroupRequest = {
|
|
||||||
schemas: [
|
|
||||||
"urn:ietf:params:scim:schemas:core:2.0:Group",
|
|
||||||
"http://schemas.microsoft.com/2006/11/ResourceManagement/ADSCIM/2.0/Group",
|
|
||||||
],
|
|
||||||
externalId: externalId,
|
|
||||||
displayName: displayName,
|
|
||||||
meta: {
|
|
||||||
resourceType: "Group",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
return group
|
|
||||||
}
|
|
||||||
|
|
||||||
describe("/api/global/scim/v2/groups", () => {
|
describe("/api/global/scim/v2/groups", () => {
|
||||||
|
let users: ScimUserResponse[]
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
tk.freeze(mocks.date.MOCK_DATE)
|
tk.freeze(mocks.date.MOCK_DATE)
|
||||||
|
|
||||||
|
@ -44,6 +23,13 @@ describe("/api/global/scim/v2/groups", () => {
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await config.beforeAll()
|
await config.beforeAll()
|
||||||
|
|
||||||
|
for (let i = 0; i < 30; i++) {
|
||||||
|
const body = structures.scim.createUserRequest()
|
||||||
|
users.push(await config.api.scimUsersAPI.post({ body }))
|
||||||
|
}
|
||||||
|
|
||||||
|
users = users.sort((a, b) => (a.id > b.id ? 1 : -1))
|
||||||
})
|
})
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
|
@ -100,7 +86,7 @@ describe("/api/global/scim/v2/groups", () => {
|
||||||
groups = []
|
groups = []
|
||||||
|
|
||||||
for (let i = 0; i < groupCount; i++) {
|
for (let i = 0; i < groupCount; i++) {
|
||||||
const body = createScimCreateGroupRequest()
|
const body = structures.scim.createGroupRequest()
|
||||||
groups.push(await config.api.scimGroupsAPI.post({ body }))
|
groups.push(await config.api.scimGroupsAPI.post({ body }))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,7 +142,7 @@ describe("/api/global/scim/v2/groups", () => {
|
||||||
externalId: structures.uuid(),
|
externalId: structures.uuid(),
|
||||||
displayName: structures.generator.word(),
|
displayName: structures.generator.word(),
|
||||||
}
|
}
|
||||||
const body = createScimCreateGroupRequest(groupData)
|
const body = structures.scim.createGroupRequest(groupData)
|
||||||
|
|
||||||
const response = await postScimGroup({ body })
|
const response = await postScimGroup({ body })
|
||||||
|
|
||||||
|
@ -188,7 +174,7 @@ describe("/api/global/scim/v2/groups", () => {
|
||||||
let group: ScimGroupResponse
|
let group: ScimGroupResponse
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const body = createScimCreateGroupRequest()
|
const body = structures.scim.createGroupRequest()
|
||||||
|
|
||||||
group = await config.api.scimGroupsAPI.post({ body })
|
group = await config.api.scimGroupsAPI.post({ body })
|
||||||
})
|
})
|
||||||
|
@ -233,7 +219,7 @@ describe("/api/global/scim/v2/groups", () => {
|
||||||
let group: ScimGroupResponse
|
let group: ScimGroupResponse
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const body = createScimCreateGroupRequest()
|
const body = structures.scim.createGroupRequest()
|
||||||
|
|
||||||
group = await config.api.scimGroupsAPI.post({ body })
|
group = await config.api.scimGroupsAPI.post({ body })
|
||||||
})
|
})
|
||||||
|
@ -273,7 +259,7 @@ describe("/api/global/scim/v2/groups", () => {
|
||||||
let group: ScimGroupResponse
|
let group: ScimGroupResponse
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const body = createScimCreateGroupRequest()
|
const body = structures.scim.createGroupRequest()
|
||||||
|
|
||||||
group = await config.api.scimGroupsAPI.post({ body })
|
group = await config.api.scimGroupsAPI.post({ body })
|
||||||
})
|
})
|
||||||
|
|
|
@ -10,49 +10,6 @@ import { TestConfiguration } from "../../../../../tests"
|
||||||
|
|
||||||
mocks.licenses.useScimIntegration()
|
mocks.licenses.useScimIntegration()
|
||||||
|
|
||||||
function createScimCreateUserRequest(userData?: {
|
|
||||||
externalId?: string
|
|
||||||
email?: string
|
|
||||||
firstName?: string
|
|
||||||
lastName?: string
|
|
||||||
username?: string
|
|
||||||
}) {
|
|
||||||
const {
|
|
||||||
externalId = structures.uuid(),
|
|
||||||
email = structures.generator.email(),
|
|
||||||
firstName = structures.generator.first(),
|
|
||||||
lastName = structures.generator.last(),
|
|
||||||
username = structures.generator.name(),
|
|
||||||
} = userData || {}
|
|
||||||
|
|
||||||
const user: ScimCreateUserRequest = {
|
|
||||||
schemas: [
|
|
||||||
"urn:ietf:params:scim:schemas:core:2.0:User",
|
|
||||||
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
|
|
||||||
],
|
|
||||||
externalId,
|
|
||||||
userName: username,
|
|
||||||
active: true,
|
|
||||||
emails: [
|
|
||||||
{
|
|
||||||
primary: true,
|
|
||||||
type: "work",
|
|
||||||
value: email,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
meta: {
|
|
||||||
resourceType: "User",
|
|
||||||
},
|
|
||||||
name: {
|
|
||||||
formatted: structures.generator.name(),
|
|
||||||
familyName: lastName,
|
|
||||||
givenName: firstName,
|
|
||||||
},
|
|
||||||
roles: [],
|
|
||||||
}
|
|
||||||
return user
|
|
||||||
}
|
|
||||||
|
|
||||||
describe("/api/global/scim/v2/users", () => {
|
describe("/api/global/scim/v2/users", () => {
|
||||||
let mockedTime = new Date(structures.generator.timestamp())
|
let mockedTime = new Date(structures.generator.timestamp())
|
||||||
|
|
||||||
|
@ -124,7 +81,7 @@ describe("/api/global/scim/v2/users", () => {
|
||||||
users = []
|
users = []
|
||||||
|
|
||||||
for (let i = 0; i < userCount; i++) {
|
for (let i = 0; i < userCount; i++) {
|
||||||
const body = createScimCreateUserRequest()
|
const body = structures.scim.createUserRequest()
|
||||||
users.push(await config.api.scimUsersAPI.post({ body }))
|
users.push(await config.api.scimUsersAPI.post({ body }))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -248,7 +205,7 @@ describe("/api/global/scim/v2/users", () => {
|
||||||
lastName: structures.generator.last(),
|
lastName: structures.generator.last(),
|
||||||
username: structures.generator.name(),
|
username: structures.generator.name(),
|
||||||
}
|
}
|
||||||
const body = createScimCreateUserRequest(userData)
|
const body = structures.scim.createUserRequest(userData)
|
||||||
|
|
||||||
const response = await postScimUser({ body })
|
const response = await postScimUser({ body })
|
||||||
|
|
||||||
|
@ -293,7 +250,7 @@ describe("/api/global/scim/v2/users", () => {
|
||||||
let user: ScimUserResponse
|
let user: ScimUserResponse
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const body = createScimCreateUserRequest()
|
const body = structures.scim.createUserRequest()
|
||||||
|
|
||||||
user = await config.api.scimUsersAPI.post({ body })
|
user = await config.api.scimUsersAPI.post({ body })
|
||||||
})
|
})
|
||||||
|
@ -338,7 +295,7 @@ describe("/api/global/scim/v2/users", () => {
|
||||||
let user: ScimUserResponse
|
let user: ScimUserResponse
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const body = createScimCreateUserRequest()
|
const body = structures.scim.createUserRequest()
|
||||||
|
|
||||||
user = await config.api.scimUsersAPI.post({ body })
|
user = await config.api.scimUsersAPI.post({ body })
|
||||||
})
|
})
|
||||||
|
@ -481,7 +438,7 @@ describe("/api/global/scim/v2/users", () => {
|
||||||
let user: ScimUserResponse
|
let user: ScimUserResponse
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const body = createScimCreateUserRequest()
|
const body = structures.scim.createUserRequest()
|
||||||
|
|
||||||
user = await config.api.scimUsersAPI.post({ body })
|
user = await config.api.scimUsersAPI.post({ body })
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue