2026-07-12 00:47:34 +08:00

23 lines
1.2 KiB
JavaScript

import { expect, test } from "vitest";
import { aggregateMetricMaps, metricTooltip } from "./metrics.js";
test("describes recharge metrics with the Finance source of truth", () => {
expect(metricTooltip("recharge_usd_minor")).toContain("Finance 口径");
expect(metricTooltip("google_recharge_usd_minor")).toContain("Google 成功充值");
expect(metricTooltip("mifapay_recharge_usd_minor")).toContain("非 Google 三方成功充值");
expect(metricTooltip("coin_seller_recharge_usd_minor")).toContain("已核验币商充值订单 + H5 币商身份成功充值");
expect(metricTooltip("arppu_usd_minor")).toContain("当前不展示");
});
test("keeps ARPU and ARPPU unavailable after aggregating Finance-aligned recharge", () => {
const metrics = aggregateMetricMaps([
{ active_users: 10, finance_recharge_aligned: true, paid_users: 2, recharge_usd_minor: 600 },
{ active_users: 5, finance_recharge_aligned: true, paid_users: 1, recharge_usd_minor: 300 }
]);
expect(metrics.recharge_usd_minor).toBe(900);
expect(metrics.finance_recharge_aligned).toBe(true);
expect(metrics.arpu_usd_minor).toBeNull();
expect(metrics.arppu_usd_minor).toBeNull();
});