Files
HiveGrid-Wireframes/hivegrid-cloud/apps/web/app/utils/connector/connectorNavState.test.ts
T

27 lines
1.4 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { resolveConnectorNavState } from "./connectorNavState";
describe("resolveConnectorNavState", () => {
it("maps an allowed decision to 'active'", () => {
expect(resolveConnectorNavState({ allowed: true })).toBe("active");
expect(resolveConnectorNavState({ allowed: true, reason: "included" })).toBe("active");
});
it("maps blueprint/role/override denials to 'hidden'", () => {
expect(resolveConnectorNavState({ allowed: false, reason: "blueprint-disabled" })).toBe("hidden");
expect(resolveConnectorNavState({ allowed: false, reason: "tenant-role-missing" })).toBe("hidden");
expect(resolveConnectorNavState({ allowed: false, reason: "tenant-override-disabled" })).toBe("hidden");
expect(resolveConnectorNavState({ allowed: false, reason: "tenant-override-not-toggleable" })).toBe("hidden");
});
it("maps entitlement/plan denials to 'locked' (upsell)", () => {
expect(resolveConnectorNavState({ allowed: false, reason: "not-included" })).toBe("locked");
expect(resolveConnectorNavState({ allowed: false, reason: "limit-reached" })).toBe("locked");
expect(resolveConnectorNavState({ allowed: false, reason: "no-subscription" })).toBe("locked");
});
it("defaults to 'locked' when a denial carries no reason", () => {
expect(resolveConnectorNavState({ allowed: false })).toBe("locked");
});
});