From db66998107c4beea6632a5ac7b03d2af77f780a3 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 11 Jan 2025 12:48:59 +0200 Subject: [PATCH] chore(e2e): test eslint warnings --- e2e/note_types/code.spec.ts | 29 +++++++++++++++++++++++++++++ e2e/support/app.ts | 9 +++++++++ integration-tests/db/document.db | Bin 487424 -> 487424 bytes 3 files changed, 38 insertions(+) create mode 100644 e2e/note_types/code.spec.ts diff --git a/e2e/note_types/code.spec.ts b/e2e/note_types/code.spec.ts new file mode 100644 index 000000000..31445e6db --- /dev/null +++ b/e2e/note_types/code.spec.ts @@ -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(); +} diff --git a/e2e/support/app.ts b/e2e/support/app.ts index c693473a6..92cbe55e9 100644 --- a/e2e/support/app.ts +++ b/e2e/support/app.ts @@ -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); } diff --git a/integration-tests/db/document.db b/integration-tests/db/document.db index 769441675128ed0ea8615e26b5e1576edf5358cd..da7b5158b35e243fb036a5a973b9e04f777a21c7 100644 GIT binary patch delta 1194 zcmZ{jZA@EL7{~89_uO+Y<R3O_+c?&2#FeFT-c1Cj9I*lX!-#^J^7#W z{GU9}d44CoZcne<=d2(+Z+jYqKj~U52d+=$J--XSkk9A#2E3%m2I_U?^|)oPpA6f; zcY;6U^|@7laHif4XuTcM8{$4@i7{O;t{bO~PmqFjc$8gYmNbi8yS!x93`qQ&Ilg?* zx&n|X1WFg|-Fjqh&YZpn>FIlHYBb-%mOy{JZnP$xOtnVhJz@!c5JhGYn+`DFf_1{j zQG|5HQ8&2}M{D#_0=2QsvX{^u@B!h{$U}o^bO6wnq46n!kY!jA_$!*L2(Tx#7Q!xaX%5}jyS+}j77%ho5_NI)g`}MD^!r8E zR%;!7ZD%V7gKDIK z*2Qsh4ztRbzBHwnRbrguuJGqlEG~Psgj}BE9Q?T!U7T;*5@E7o1^YE+t!CHcWa*1i zY{1->#_DN_`OB8NQsLS(lZ@K9xen-NR1ue>2O z=ne$E9Uj@U)4A4gw`d1LMQ~?BMUa#)a*yxikpIUa(}_jy^*FdiIWz7D&`?EU7VM_) zSa3#gSk5G$sc&vqyMqH0y-izhofth+)9&dw)^}oPOmvdSUc72NTN(DK6VcW&HP$N@ z)5BK0QUF<&urhv5$n&vJvitJdNuP`tq39qv3cdqebVI=s;Mfkv3AC8qN{Uq+K)H2{ zL{F-ClZW6p(p1bnrgi?pkWNG3W^0e+wtK!(OuXHO?m&39dzgz#P)PiteU=5d5r88f|zR zUz-NSMCYbb5Wf)Havy-d<|_+nkAu$u=*lIR$5>}!RrT?Kn&?1PwJ)1x@~*_&#eZSx z=p%;-7-x5pl!MPBX_gb|ti(6uK*mbC``JBgG$UybZTkz$)!~syWH5g8)Ns~7+tvQ# z>r}?6MeVM_#*v{wWlQe~UsLuXvy*kUx-$;#roE)lHy&04BmTO?^VvV_QL?aIxk9Ez JW&Fld{{Z4sRT2OI delta 1072 zcmY+DZA@Eb6vyv#?{lBq(%Tm*14k($3H$AXDlV$_%{CW0(cqlpXC_{l74aap3DPR_|W z|D1Dv=VUkR*$sQn284yOIv{+|w^#+rKNL!S)rmo`-(BsM@QyN|=!Br;bNj>q&Xj?# zbe^E-cgwP8PO$@`*lDt2*-c%d%%@EordiYD#(w@jwrtQ%npJpa>5@e&fW}qo*`>X< zd3tX3E=^YNGNnhY@NLQ}W)k&7Z5`ocZ92tU$!`PD!Xt{JZhwx7jOv{VPbl$ezKo>L!oRL+sYnfZ zubG_yT6r{tdt2CYpeHZ2u-jNo>)k_^!)(H|bo{_K;94Kc3VINt%%7NNKnR<1>}C9A zj^#DOdX_tpV36yS5ns%)MGvFRTHyQL+RS?0qlZ0$$LA76mnb?!A?V5PH{h15B_f_> z=Xh;=&83Cc#vc>C4lxk)Nn2zBqA!}S^16g-*Z<>wGQG&Yo&ui})`H>yrwWmqyj6(a z)Hy1L(``yuMCuQWP7if%%{*~*GBmA@t7Cq-hiCA?QuLi^{6H+$+1l6?SNwZctb^_J`Z9bqS>^58}AsJRcn@nDi z&?ZOIRk*W~-LCci#Ny3m)cg!4)jMA zemaZJfOp8vEJ`xqWfFV^C1~Slq`R%LXJ}@)Ug5WstFx$prYVYCe--`6KnvppuJz}`{PUre&5L<-1ix@;=~Q4!-f@P@g>g}8>kXzh0eLpsjo>S zGqK6B{#LcF*?X+IHZT$qCL6};6LM_yzi{wE1?TPY1O=~K7W~nC(|_khd<_po)Ul*G z*&q!^d&HhdJab6uI+6}~+WixIMh8VufvF)SS>tP0)TYVw XKrA9F|H|ioU69<8ER!8B?oRDLh$=zc