chore(e2e): test eslint warnings

This commit is contained in:
Elian Doran 2025-01-11 12:48:59 +02:00
parent dcc0e76e57
commit db66998107
No known key found for this signature in database
3 changed files with 38 additions and 0 deletions

View File

@ -0,0 +1,29 @@
import { test, expect, Page } from "@playwright/test";
import App from "../support/app";
test("Displays lint warnings for backend script", async ({ page }) => {
const app = new App(page);
await app.goto();
await app.closeAllTabs();
await app.goToNoteInNewTab("Backend script with lint warning");
const codeEditor = app.currentNoteSplit.locator(".CodeMirror");
expect(await app.currentNoteSplit.locator(".note-title").inputValue()).toBe("Backend script with lint warnings");
// Expect two warning signs in the gutter.
expect(codeEditor.locator(".CodeMirror-gutter-wrapper .CodeMirror-lint-marker-warning")).toHaveCount(2);
// Hover over hello
await codeEditor.getByText("hello").first().hover();
await expectTooltip(page, "'hello' is defined but never used.");
// Hover over world
await codeEditor.getByText("world").first().hover();
await expectTooltip(page, "'world' is defined but never used.");
});
async function expectTooltip(page: Page, tooltip: string) {
await expect(page.locator(".CodeMirror-lint-tooltip:visible", {
"hasText": tooltip
})).toBeVisible();
}

View File

@ -5,11 +5,13 @@ export default class App {
readonly tabBar: Locator;
readonly noteTree: Locator;
readonly currentNoteSplit: Locator;
constructor(page: Page) {
this.page = page;
this.tabBar = page.locator(".tab-row-widget-container");
this.noteTree = page.locator(".tree-wrapper");
this.currentNoteSplit = page.locator(".note-split:not(.hidden-ext)")
}
async goto() {
@ -20,6 +22,13 @@ export default class App {
.toContainText("Trilium Integration Test");
}
async goToNoteInNewTab(noteTitle: string) {
const autocomplete = this.currentNoteSplit.locator(".note-autocomplete");
await autocomplete.fill(noteTitle);
await autocomplete.press("ArrowDown");
await autocomplete.press("Enter");
}
getTab(tabIndex: number) {
return this.tabBar.locator(".note-tab-wrapper").nth(tabIndex);
}

Binary file not shown.