2025-01-17 22:57:56 +02:00
|
|
|
import { test, expect, Page } from "@playwright/test";
|
|
|
|
import App from "./support/app";
|
|
|
|
|
|
|
|
test("Help popup", async ({ page, context }) => {
|
|
|
|
page.setDefaultTimeout(15_000);
|
|
|
|
|
|
|
|
const app = new App(page, context);
|
|
|
|
await app.goto();
|
|
|
|
|
|
|
|
const popupPromise = page.waitForEvent("popup");
|
2025-02-07 21:02:30 +02:00
|
|
|
await app.currentNoteSplit.press("Shift+F1");
|
2025-01-29 22:40:35 +02:00
|
|
|
await page.getByRole("link", { name: "online" }).click();
|
2025-01-17 22:57:56 +02:00
|
|
|
const popup = await popupPromise;
|
|
|
|
expect(popup.url()).toBe("https://triliumnext.github.io/Docs/");
|
|
|
|
});
|
|
|
|
|
|
|
|
test("Complete help in search", async ({ page, context }) => {
|
|
|
|
const app = new App(page, context);
|
|
|
|
await app.goto();
|
|
|
|
|
|
|
|
await app.launcherBar.locator(".bx-search").first().click();
|
|
|
|
await app.currentNoteSplit.locator(".search-settings .bx-help-circle").click();
|
|
|
|
const popupPromise = page.waitForEvent("popup");
|
|
|
|
await page.getByRole("link", { name: "complete help on search syntax" }).click();
|
|
|
|
const popup = await popupPromise;
|
|
|
|
expect(popup.url()).toBe("https://triliumnext.github.io/Docs/Wiki/search.html");
|
|
|
|
});
|
2025-04-02 16:39:16 +03:00
|
|
|
|
|
|
|
test("In-app-help works in English", async ({ page, context }) => {
|
|
|
|
const app = new App(page, context);
|
|
|
|
await app.goto();
|
|
|
|
|
|
|
|
await app.currentNoteSplit.press("F1");
|
|
|
|
const title = "User Guide";
|
|
|
|
await expect(app.noteTreeHoistedNote).toContainText(title);
|
|
|
|
await expect(app.currentNoteSplitTitle).toHaveValue(title);
|
|
|
|
|
|
|
|
app.noteTree.getByText("Troubleshooting").click();
|
|
|
|
await expect(app.currentNoteSplitTitle).toHaveValue("Troubleshooting");
|
|
|
|
await app.currentNoteSplitContent.locator("p").first().waitFor({ state: "visible" });
|
|
|
|
expect(await app.currentNoteSplitContent.locator("p").count()).toBeGreaterThan(10);
|
|
|
|
});
|
|
|
|
|
|
|
|
test("In-app-help works in other languages", async ({ page, context }) => {
|
|
|
|
const app = new App(page, context);
|
|
|
|
try {
|
|
|
|
await app.goto();
|
|
|
|
await app.setOption("locale", "cn");
|
|
|
|
await app.goto();
|
|
|
|
|
|
|
|
await app.currentNoteSplit.press("F1");
|
|
|
|
const title = "用户指南";
|
|
|
|
await expect(app.noteTreeHoistedNote).toContainText(title);
|
|
|
|
await expect(app.currentNoteSplitTitle).toHaveValue(title);
|
|
|
|
|
|
|
|
app.noteTree.getByText("Troubleshooting").click();
|
|
|
|
await expect(app.currentNoteSplitTitle).toHaveValue("Troubleshooting");
|
|
|
|
await app.currentNoteSplitContent.locator("p").first().waitFor({ state: "visible" });
|
|
|
|
expect(await app.currentNoteSplitContent.locator("p").count()).toBeGreaterThan(10);
|
|
|
|
} finally {
|
|
|
|
// Ensure English is set after each locale change to avoid any leaks to other tests.
|
|
|
|
await app.setOption("locale", "en");
|
|
|
|
}
|
|
|
|
});
|