import test, { expect } from "@playwright/test"; test("User can change language from settings", async ({ page }) => { await page.goto('http://localhost:8082'); // Clear all tabs await page.locator('.note-tab:first-of-type').locator("div").nth(1).click({ button: 'right' }); await page.getByText('Close all tabs').click(); // Go to options -> Appearance await page.locator('#launcher-pane div').filter({ hasText: 'Options Open New Window' }).getByRole('button').click(); await page.locator('#launcher-pane').getByText('Options').click(); await page.locator('#center-pane').getByText('Appearance').click(); // Check that the default value (English) is set. await expect(page.locator('#center-pane')).toContainText('Theme'); const languageCombobox = await page.getByRole('combobox').first(); await expect(languageCombobox).toHaveValue("en"); // Select Chinese and ensure the translation is set. languageCombobox.selectOption("cn"); await expect(page.locator('#center-pane')).toContainText('主题'); // Select English again. languageCombobox.selectOption("en"); }); test("Restores language on start-up on desktop", async ({ page, context }) => { await page.goto('http://localhost:8082'); await expect(page.locator('#launcher-pane').first()).toContainText("Open New Window"); }); test("Restores language on start-up on mobile", async ({ page, context }) => { await context.addCookies([ { url: "http://localhost:8082", name: "trilium-device", value: "mobile" } ]); await page.goto('http://localhost:8082'); await expect(page.locator('#launcher-pane div').first()).toContainText("Open New Window"); });