import { describe, expect, it } from "vitest"; import { calculateSeedreamAmountFen, SEEDREAM_50_PRO_MODEL } from "@/lib/server/seedream-billing"; import { DEFAULT_BILLING_PRICE_RULES } from "@/lib/server/billing-catalog"; describe("Seedream 5.0 Pro billing", () => { it("keeps official output and reference image rates under the 1.2x markup", () => { expect(calculateSeedreamAmountFen({ outputPriceFen: 30, referenceImageCount: 0, markupMultiplier: 1.2 })).toBe(36); expect(calculateSeedreamAmountFen({ outputPriceFen: 30, referenceImageCount: 3, markupMultiplier: 1.2 })).toBe(41); expect(calculateSeedreamAmountFen({ outputPriceFen: 60, referenceImageCount: 3, markupMultiplier: 1.2 })).toBe(77); expect(calculateSeedreamAmountFen({ outputPriceFen: 60, referenceImageCount: 10, markupMultiplier: 1.2 })).toBe(94); }); it("seeds an independent 5.0 Pro price rule without replacing Jimeng 4.6", () => { expect(DEFAULT_BILLING_PRICE_RULES).toEqual(expect.arrayContaining([ expect.objectContaining({ id: "base-volcengine-jimeng-seedream46", reqKey: "jimeng_seedream46_cvtob" }), expect.objectContaining({ id: "base-seedream-5-0-pro", provider: "seedream", reqKey: SEEDREAM_50_PRO_MODEL, standardUnitPriceFen: 30 }) ])); }); });