- Reads useLicense().state.edition === 'premium' - Ergonomic only — server enforces independently (ADR 0011) - 3 vitest tests (premium, base, free) - CLAUDE.md hook count 12 -> 13 Closes #157
42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import { describe, it, expect, vi } from "vitest";
|
|
import { useIsPremium } from "./useIsPremium";
|
|
|
|
vi.mock("./useLicense", () => ({
|
|
useLicense: vi.fn(),
|
|
}));
|
|
|
|
import { useLicense } from "./useLicense";
|
|
|
|
const mockUseLicense = vi.mocked(useLicense);
|
|
|
|
describe("useIsPremium", () => {
|
|
it('returns true when edition is "premium"', () => {
|
|
mockUseLicense.mockReturnValue({
|
|
state: { status: "ready", edition: "premium", info: null, error: null },
|
|
refresh: vi.fn(),
|
|
submitKey: vi.fn(),
|
|
checkEntitlement: vi.fn(),
|
|
});
|
|
expect(useIsPremium()).toBe(true);
|
|
});
|
|
|
|
it('returns false when edition is "base"', () => {
|
|
mockUseLicense.mockReturnValue({
|
|
state: { status: "ready", edition: "base", info: null, error: null },
|
|
refresh: vi.fn(),
|
|
submitKey: vi.fn(),
|
|
checkEntitlement: vi.fn(),
|
|
});
|
|
expect(useIsPremium()).toBe(false);
|
|
});
|
|
|
|
it('returns false when edition is "free"', () => {
|
|
mockUseLicense.mockReturnValue({
|
|
state: { status: "ready", edition: "free", info: null, error: null },
|
|
refresh: vi.fn(),
|
|
submitKey: vi.fn(),
|
|
checkEntitlement: vi.fn(),
|
|
});
|
|
expect(useIsPremium()).toBe(false);
|
|
});
|
|
});
|