28 lines
1.5 KiB
TypeScript
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");
|
|
});
|
|
});
|