23 lines
1.2 KiB
JavaScript
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();
|
|
});
|