import { renderToStaticMarkup } from "react-dom/server";
import { describe, expect, it } from "vitest";
import { PERMS } from "@/lib/permission-slugs";
import {
fail,
type HousekeepingCapabilityContext,
ok,
} from "../../../foundation/contracts";
import { EconomyCatalogPage } from "./catalog";
import { EconomyCommercePage } from "./commerce";
import { EconomyHistoryPage } from "./history";
import { EconomyItemsPage } from "./items";
import { EconomyRewardsPage } from "./rewards";
import { EconomyValuePage } from "./value";
function context(granted: readonly string[]): HousekeepingCapabilityContext {
const permissions = new Set(granted);
return {
actor: { id: 42, username: "operator", rank: 7 },
isSuperAdmin: false,
has: (slug) => permissions.has(slug),
hasAny: (...slugs) => slugs.some((slug) => permissions.has(slug)),
hasAll: (...slugs) => slugs.every((slug) => permissions.has(slug)),
};
}
const cases = [
["catalog", EconomyCatalogPage],
["items", EconomyItemsPage],
["commerce", EconomyCommercePage],
["history", EconomyHistoryPage],
["value", EconomyValuePage],
["rewards", EconomyRewardsPage],
] as const;
describe.each(cases)("Economy %s page", (kind, Component) => {
it("renders loading, forbidden, empty, and canonical ready states", () => {
const render = (result?: unknown) =>
renderToStaticMarkup(