mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-29 11:02:28 +08:00
chore(e2e): test eslint warnings
This commit is contained in:
parent
dcc0e76e57
commit
db66998107
29
e2e/note_types/code.spec.ts
Normal file
29
e2e/note_types/code.spec.ts
Normal 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();
|
||||||
|
}
|
@ -5,11 +5,13 @@ export default class App {
|
|||||||
|
|
||||||
readonly tabBar: Locator;
|
readonly tabBar: Locator;
|
||||||
readonly noteTree: Locator;
|
readonly noteTree: Locator;
|
||||||
|
readonly currentNoteSplit: Locator;
|
||||||
|
|
||||||
constructor(page: Page) {
|
constructor(page: Page) {
|
||||||
this.page = page;
|
this.page = page;
|
||||||
this.tabBar = page.locator(".tab-row-widget-container");
|
this.tabBar = page.locator(".tab-row-widget-container");
|
||||||
this.noteTree = page.locator(".tree-wrapper");
|
this.noteTree = page.locator(".tree-wrapper");
|
||||||
|
this.currentNoteSplit = page.locator(".note-split:not(.hidden-ext)")
|
||||||
}
|
}
|
||||||
|
|
||||||
async goto() {
|
async goto() {
|
||||||
@ -20,6 +22,13 @@ export default class App {
|
|||||||
.toContainText("Trilium Integration Test");
|
.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) {
|
getTab(tabIndex: number) {
|
||||||
return this.tabBar.locator(".note-tab-wrapper").nth(tabIndex);
|
return this.tabBar.locator(".note-tab-wrapper").nth(tabIndex);
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user