forked from tsai/budibase
10 changed files with 175 additions and 46 deletions
@ -0,0 +1,72 @@ |
|||||
|
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) |
||||
|
}) |
||||
|
}) |
||||
|
}) |
||||
Loading…
Reference in new issue