37 lines
1.4 KiB
TypeScript
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)");
|
|
});
|
|
});
|