20 lines
1.2 KiB
TypeScript
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 })
|
|
]));
|
|
});
|
|
});
|