2025-01-12 17:28:41 +02:00
|
|
|
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");
|
|
|
|
});
|
|
|
|
|
2025-01-12 18:05:24 +02:00
|
|
|
test("Displays translation on desktop", async ({ page, context }) => {
|
|
|
|
const app = new App(page, context);
|
2025-01-12 17:43:16 +02:00
|
|
|
await app.goto();
|
|
|
|
|
|
|
|
await expect(page.locator("#left-pane .quick-search input"))
|
|
|
|
.toHaveAttribute("placeholder", "Quick search");
|
|
|
|
});
|
|
|
|
|
2025-01-12 18:05:24 +02:00
|
|
|
test("Displays translation on mobile", async ({ page, context }) => {
|
|
|
|
const app = new App(page, context);
|
|
|
|
await app.goto({ isMobile: true });
|
|
|
|
|
|
|
|
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);
|
2025-01-12 17:28:41 +02:00
|
|
|
await app.goto();
|
|
|
|
await app.closeAllTabs();
|
|
|
|
await app.goToSettings();
|
|
|
|
await app.noteTree.getByText("Appearance").click();
|
|
|
|
|
2025-01-12 17:43:16 +02:00
|
|
|
await expect(app.currentNoteSplit).toContainText("Localization");
|
|
|
|
await expect(app.currentNoteSplit).toContainText("Language");
|
2025-01-12 17:28:41 +02:00
|
|
|
});
|
2025-01-12 17:36:10 +02:00
|
|
|
|
2025-01-12 18:05:24 +02:00
|
|
|
test("User can change language from settings", async ({ page, context }) => {
|
|
|
|
const app = new App(page, context);
|
2025-01-12 17:36:10 +02:00
|
|
|
await app.goto();
|
|
|
|
|
|
|
|
await app.closeAllTabs();
|
|
|
|
await app.goToSettings();
|
|
|
|
await app.noteTree.getByText("Appearance").click();
|
|
|
|
|
|
|
|
// Check that the default value (English) is set.
|
|
|
|
await expect(app.currentNoteSplit).toContainText("Theme");
|
|
|
|
const languageCombobox = await app.currentNoteSplit.getByRole("combobox").first();
|
|
|
|
await expect(languageCombobox).toHaveValue("en");
|
|
|
|
|
|
|
|
// Select Chinese and ensure the translation is set.
|
2025-01-12 23:41:27 +02:00
|
|
|
await languageCombobox.selectOption("cn");
|
2025-01-13 17:46:57 +02:00
|
|
|
await expect(app.currentNoteSplit).toContainText("主题", { timeout: 15000 });
|
2025-01-12 17:36:10 +02:00
|
|
|
|
|
|
|
// Select English again.
|
2025-01-12 23:41:27 +02:00
|
|
|
await languageCombobox.selectOption("en");
|
2025-01-13 17:46:57 +02:00
|
|
|
await expect(app.currentNoteSplit).toContainText("Language", { timeout: 15000 });
|
2025-01-12 17:36:10 +02:00
|
|
|
});
|