22 lines
856 B
TypeScript
22 lines
856 B
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { SubscriptionBillingPeriod } from "~/application/enums/subscriptions/SubscriptionBillingPeriod";
|
|
import { createLocaleFormatters } from "~/locale/format";
|
|
import { getYearlyDiscount } from "./PricingHelper";
|
|
|
|
describe("getYearlyDiscount", () => {
|
|
const prices = [
|
|
{ price: 100, currency: "usd", billingPeriod: SubscriptionBillingPeriod.MONTHLY },
|
|
{ price: 1000, currency: "usd", billingPeriod: SubscriptionBillingPeriod.YEARLY },
|
|
];
|
|
|
|
it("formats the discount through Intl by default", () => {
|
|
expect(getYearlyDiscount(prices as never, "usd")).toBe("-17%");
|
|
});
|
|
|
|
it("accepts the active locale percent formatter", () => {
|
|
const formatters = createLocaleFormatters("de");
|
|
|
|
expect(getYearlyDiscount(prices as never, "usd", formatters.percent)).toMatch(/-17\s?%/u);
|
|
});
|
|
});
|