Files
HiveGrid-Wireframes/hivegrid-cloud/apps/web/app/modules/usage/components/usage-formatting-i18n.test.ts
T

37 lines
1.4 KiB
TypeScript

import fs from "node:fs";
import path from "node:path";
import { describe, expect, it } from "vitest";
const root = process.cwd();
function readUsageComponent(fileName: string) {
return fs.readFileSync(path.join(root, "apps/web/app/modules/usage/components", fileName), "utf8");
}
describe("usage credit formatting i18n", () => {
it("uses locale-aware formatters for credit list timestamps", () => {
const source = readUsageComponent("CreditsList.tsx");
expect(source).not.toContain("DateUtils");
expect(source).not.toContain('title: "Tenant"');
expect(source).toContain("useLocaleFormatters");
expect(source).toContain('t("models.tenant.object")');
expect(source).toContain('t("shared.notSet")');
expect(source).toContain('t(creditType.name)');
expect(source).toContain('t("models.credit.types.unknown"');
expect(source).toContain("formatters.dateTime");
expect(source).not.toContain('t("shared.undefined")');
expect(source).not.toContain("<div>{item.type}</div>");
});
it("uses locale-aware formatters for credit amounts", () => {
const sources = ["CreditsRemaining.tsx", "CreditsTableInfo.tsx"].map(readUsageComponent).join("\n");
expect(sources).not.toContain("NumberUtils");
expect(sources).toContain("useLocaleFormatters");
expect(sources).toContain("formatters.number");
expect(sources).toContain("t(item.name)");
expect(sources).toContain("t(item.description)");
});
});