Files
HiveGrid-Wireframes/03 Quellen und Referenzen/hivegrid-cloud/apps/web/app/application/pricing/pricingModelPolicy.test.ts
T

28 lines
1.5 KiB
TypeScript

import fs from "node:fs";
import path from "node:path";
import { describe, expect, it } from "vitest";
import { PricingModel } from "~/application/enums/subscriptions/PricingModel";
import { HIVEGRID_SUBSCRIPTION_PRICING_MODELS, isHiveGridSubscriptionPricingModel } from "./pricingModelPolicy";
describe("HiveGrid subscription pricing model policy", () => {
it("allows only fixed recurring and one-time products", () => {
expect(HIVEGRID_SUBSCRIPTION_PRICING_MODELS).toEqual([PricingModel.FLAT_RATE, PricingModel.ONCE]);
expect(HIVEGRID_SUBSCRIPTION_PRICING_MODELS).not.toContain(PricingModel.PER_SEAT);
expect(HIVEGRID_SUBSCRIPTION_PRICING_MODELS).not.toContain(PricingModel.USAGE_BASED);
expect(HIVEGRID_SUBSCRIPTION_PRICING_MODELS).not.toContain(PricingModel.FLAT_RATE_USAGE_BASED);
expect(isHiveGridSubscriptionPricingModel(PricingModel.PER_SEAT)).toBe(false);
expect(isHiveGridSubscriptionPricingModel(PricingModel.USAGE_BASED)).toBe(false);
expect(isHiveGridSubscriptionPricingModel(PricingModel.FLAT_RATE_USAGE_BASED)).toBe(false);
});
it("does not expose the removed demo-plan generator from the admin route", () => {
const route = fs.readFileSync(path.join(process.cwd(), "apps/web/app/routes/admin/settings/pricing.tsx"), "utf8");
expect(route).not.toContain("plans.server");
expect(route).not.toContain("create-all-plans");
expect(route).not.toContain("generateFromFiles");
expect(route).toContain("admin.pricing.catalogManaged");
});
});