Files
Trilium/apps/server-e2e/src/i18n.spec.ts

63 lines
2.6 KiB
TypeScript
Raw Normal View History

import { test, expect, Page } from "@playwright/test";
import App from "./support/app";
2025-01-13 17:42:21 +02:00
test.afterEach(async ({ page, context }) => {
const app = new App(page, context);
// Ensure English is set after each locale change to avoid any leaks to other tests.
await app.setOption("locale", "en");
});
test("Displays translation on desktop", async ({ page, context }) => {
const app = new App(page, context);
await app.goto();
2025-03-02 20:47:57 +01:00
await expect(page.locator("#left-pane .quick-search input")).toHaveAttribute("placeholder", "Quick search");
});
test("Displays translation on mobile", async ({ page, context }) => {
const app = new App(page, context);
await app.goto({ isMobile: true });
2025-03-02 20:47:57 +01:00
await expect(page.locator("#mobile-sidebar-wrapper .quick-search input")).toHaveAttribute("placeholder", "Quick search");
});
test("Displays translations in Settings", async ({ page, context }) => {
const app = new App(page, context);
await app.goto();
await app.closeAllTabs();
await app.goToSettings();
2025-03-13 06:10:09 +02:00
await app.noteTree.getByText("Language & Region").click();
await expect(app.currentNoteSplit).toContainText("Localization");
await expect(app.currentNoteSplit).toContainText("Language");
});
test("User can change language from settings", async ({ page, context }) => {
const app = new App(page, context);
await app.goto();
await app.closeAllTabs();
await app.goToSettings();
2025-03-13 06:10:09 +02:00
await app.noteTree.getByText("Language & Region").click();
// Check that the default value (English) is set.
2025-03-13 06:10:09 +02:00
await expect(app.currentNoteSplit).toContainText("First day of the week");
const languageCombobox = app.currentNoteSplit.locator(".options-section .dropdown").first();
await expect(languageCombobox).toContainText("English");
// Select Chinese and ensure the translation is set.
await languageCombobox.locator(".dropdown-toggle").click();
await languageCombobox.locator(".dropdown-item", { hasText: "简体中文" }).click();
await app.currentNoteSplit.locator("button[name=restart-app-button]").click();
2025-03-13 06:10:09 +02:00
await expect(app.currentNoteSplit).toContainText("一周的第一天", { timeout: 15000 });
await expect(languageCombobox).toContainText("简体中文");
// Select English again.
await languageCombobox.locator(".dropdown-toggle").click();
await languageCombobox.locator(".dropdown-item", { hasText: "English" }).click();
2025-08-20 19:17:35 +03:00
await app.currentNoteSplit.locator("button[name=restart-app-button]").click();
2025-01-13 17:46:57 +02:00
await expect(app.currentNoteSplit).toContainText("Language", { timeout: 15000 });
await expect(languageCombobox).toContainText("English");
});