42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { describe, expect, test } from "bun:test";
|
|
import { LEAF_OAUTH_SCOPES } from "./leafOAuthScopes";
|
|
import { Scopes } from "./scopeDefinitions";
|
|
|
|
describe("LEAF_OAUTH_SCOPES", () => {
|
|
test("contains the exact Leaf Slack and MCP OAuth allowlist", () => {
|
|
expect(LEAF_OAUTH_SCOPES).toEqual([
|
|
Scopes.Organisation.Read,
|
|
Scopes.Customers.Read,
|
|
Scopes.Customers.Write,
|
|
Scopes.Features.Read,
|
|
Scopes.Features.Write,
|
|
Scopes.Plans.Read,
|
|
Scopes.Plans.Write,
|
|
Scopes.Balances.Read,
|
|
Scopes.Balances.Write,
|
|
Scopes.Billing.Read,
|
|
Scopes.Billing.Write,
|
|
Scopes.Analytics.Read,
|
|
]);
|
|
});
|
|
|
|
test("does not include elevated or unrelated product scopes", () => {
|
|
expect(LEAF_OAUTH_SCOPES).not.toEqual(
|
|
expect.arrayContaining([
|
|
Scopes.Organisation.Write,
|
|
Scopes.ApiKeys.Read,
|
|
Scopes.ApiKeys.Write,
|
|
Scopes.Migrations.Read,
|
|
Scopes.Migrations.Write,
|
|
Scopes.Platform.Read,
|
|
Scopes.Platform.Write,
|
|
Scopes.Rewards.Read,
|
|
Scopes.Rewards.Write,
|
|
Scopes.Admin,
|
|
Scopes.Owner,
|
|
Scopes.Superuser,
|
|
]),
|
|
);
|
|
});
|
|
});
|