Files
NianAIGC/tests/seedream-billing.test.ts
2026-08-21 13:44:56 +08:00

20 lines
1.2 KiB
TypeScript

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 })
]));
});
});