feat(modality): rename "file" modality label "Data" -> "Files"

The fifth user-facing group is now Image, Video, Audio, PDF, Files
(internal modality id stays "file"; section.ts "files" was already
"Files"). Updates modality.ts label + comment, all 21 i18n locales
(categories.data "Data Files"->"Files", modalities.documentsAndFiles
"PDF & Data"->"PDF & Files", dead homePage.data), landing cards/hero
search/tools filter, docs headings, and e2e modality-tab assertions
(/^Data/ -> /^Files/, which had been failing).
This commit is contained in:
SnapOtter
2026-06-21 02:45:56 +08:00
parent 8001ec97f1
commit 71fefc05b0
34 changed files with 80 additions and 80 deletions
+1 -1
View File
@@ -40,7 +40,7 @@ test.describe("Landing Homepage", () => {
});
test("hero modality cards render", async ({ page }) => {
const cards = ["Image Tools", "Video Tools", "Audio Tools", "PDF & Documents", "Data & Files"];
const cards = ["Image Tools", "Video Tools", "Audio Tools", "PDF & Documents", "Files"];
for (const card of cards) {
await expect(page.getByText(card, { exact: true }).first()).toBeVisible();
}
+2 -2
View File
@@ -11,7 +11,7 @@ test.describe("Home Page", () => {
});
test("modality tabs are visible", async ({ loggedInPage: page }) => {
// 2.0 home page has modality tabs: All, Image, Video, Audio, PDF, Data
// 2.0 home page has modality tabs: All, Image, Video, Audio, PDF, Files
// Tab buttons render label + a count span, so the accessible name is e.g.
// "Image5" (no word boundary before the digit) — match on the label prefix.
await expect(page.getByRole("button", { name: /^All/ }).first()).toBeVisible();
@@ -19,7 +19,7 @@ test.describe("Home Page", () => {
await expect(page.getByRole("button", { name: /^Video/ }).first()).toBeVisible();
await expect(page.getByRole("button", { name: /^Audio/ }).first()).toBeVisible();
await expect(page.getByRole("button", { name: /^PDF/ }).first()).toBeVisible();
await expect(page.getByRole("button", { name: /^Data/ }).first()).toBeVisible();
await expect(page.getByRole("button", { name: /^Files/ }).first()).toBeVisible();
});
test("tool categories are visible on home page", async ({ loggedInPage: page }) => {
@@ -132,7 +132,7 @@ const TOOL_FIXTURE: Record<string, FixtureSpec> = {
"convert-presentation": { buffer: PPTX, filename: "test.pptx" },
"epub-convert": { buffer: EPUB, filename: "test.epub" },
"ocr-pdf": PDF_FIX,
// Data tools
// File tools
"csv-excel": CSV_FIX,
"csv-json": CSV_FIX,
"json-xml": { buffer: JSON_F, filename: "test.json" },
@@ -173,8 +173,8 @@ describe("cross-modality launch smoke", () => {
30_000,
);
// ── Data/File: csv-json (pure JS, no binary) ─────────────────────
it("data modality: csv-json", async () => {
// ── Files: csv-json (pure JS, no binary) ─────────────────────
it("file modality: csv-json", async () => {
const file = readFixture(fixtures.data.csv);
const res = await postTool(app, adminToken, "csv-json", file, "tiny.csv", "text/csv", {
direction: "csv-to-json",