1
0
Fork 0
mirror of synced 2024-09-16 09:17:40 +12:00
budibase/packages/backend-core/tests/core/users/users.spec.js

54 lines
1.5 KiB
JavaScript
Raw Normal View History

2023-11-21 03:36:55 +13:00
const _ = require("lodash/fp")
const { structures } = require("../../../tests")
2023-10-25 04:16:44 +13:00
jest.mock("../../../src/context")
jest.mock("../../../src/db")
const context = require("../../../src/context")
const db = require("../../../src/db")
2023-11-21 03:36:55 +13:00
const { getCreatorCount } = require("../../../src/users/users")
2023-10-25 04:16:44 +13:00
describe("Users", () => {
let getGlobalDBMock
let getGlobalUserParamsMock
let paginationMock
beforeEach(() => {
jest.resetAllMocks()
getGlobalDBMock = jest.spyOn(context, "getGlobalDB")
getGlobalUserParamsMock = jest.spyOn(db, "getGlobalUserParams")
paginationMock = jest.spyOn(db, "pagination")
})
it("Retrieves the number of creators", async () => {
const getUsers = (offset, limit, creators = false) => {
const range = _.range(offset, limit)
2023-11-21 03:36:55 +13:00
const opts = creators ? { builder: { global: true } } : undefined
2023-10-25 04:16:44 +13:00
return range.map(() => structures.users.user(opts))
}
const page1Data = getUsers(0, 8)
const page2Data = getUsers(8, 12, true)
getGlobalDBMock.mockImplementation(() => ({
2023-11-21 03:36:55 +13:00
name: "fake-db",
2023-10-25 04:16:44 +13:00
allDocs: () => ({
2023-11-21 03:36:55 +13:00
rows: [...page1Data, ...page2Data],
}),
2023-10-25 04:16:44 +13:00
}))
paginationMock.mockImplementationOnce(() => ({
data: page1Data,
hasNextPage: true,
2023-11-21 03:36:55 +13:00
nextPage: "1",
2023-10-25 04:16:44 +13:00
}))
paginationMock.mockImplementation(() => ({
data: page2Data,
hasNextPage: false,
2023-11-21 03:36:55 +13:00
nextPage: undefined,
2023-10-25 04:16:44 +13:00
}))
const creatorsCount = await getCreatorCount()
expect(creatorsCount).toBe(4)
expect(paginationMock).toHaveBeenCalledTimes(2)
})
})