72 lines
1.6 KiB
JavaScript
72 lines
1.6 KiB
JavaScript
const getTenantId = jest.fn()
|
|
jest.mock("@budibase/backend-core/tenancy", () => ({
|
|
getTenantId
|
|
}))
|
|
const usageQuota = require("../../usageQuota")
|
|
const env = require("../../../environment")
|
|
|
|
class TestConfiguration {
|
|
constructor() {
|
|
this.enableQuotas()
|
|
}
|
|
|
|
enableQuotas = () => {
|
|
env.USE_QUOTAS = 1
|
|
}
|
|
|
|
disableQuotas = () => {
|
|
env.USE_QUOTAS = null
|
|
}
|
|
|
|
setTenantId = (tenantId) => {
|
|
getTenantId.mockReturnValue(tenantId)
|
|
}
|
|
|
|
setExcludedTenants = (tenants) => {
|
|
env.EXCLUDE_QUOTAS_TENANTS = tenants
|
|
}
|
|
|
|
reset = () => {
|
|
this.disableQuotas()
|
|
this.setExcludedTenants(null)
|
|
}
|
|
}
|
|
|
|
describe("usageQuota", () => {
|
|
let config
|
|
|
|
beforeEach(() => {
|
|
config = new TestConfiguration()
|
|
})
|
|
|
|
afterEach(() => {
|
|
config.reset()
|
|
})
|
|
|
|
describe("useQuotas", () => {
|
|
it("works when no settings have been provided", () => {
|
|
config.reset()
|
|
expect(usageQuota.useQuotas()).toBe(false)
|
|
})
|
|
it("honours USE_QUOTAS setting", () => {
|
|
config.disableQuotas()
|
|
expect(usageQuota.useQuotas()).toBe(false)
|
|
|
|
config.enableQuotas()
|
|
expect(usageQuota.useQuotas()).toBe(true)
|
|
})
|
|
it("honours EXCLUDE_QUOTAS_TENANTS setting", () => {
|
|
config.setTenantId("test")
|
|
|
|
// tenantId is in the list
|
|
config.setExcludedTenants("test, test2, test2")
|
|
expect(usageQuota.useQuotas()).toBe(false)
|
|
config.setExcludedTenants("test,test2,test2")
|
|
expect(usageQuota.useQuotas()).toBe(false)
|
|
|
|
// tenantId is not in the list
|
|
config.setTenantId("other")
|
|
expect(usageQuota.useQuotas()).toBe(true)
|
|
})
|
|
})
|
|
}) |