sotashimozono_obsidian-remo.../plugin/e2e
Souta 92ed4297fc test(e2e): make sync.spec deterministic — it was passing by luck
sync.spec's create/edit/delete went red once the Settings overlay was closed.
The overlay was not what made them work; removing it just made the whole run
faster and exposed two latent faults the spec had carried all along.

1. THE REAL RACE. `beforeAll` used `connectAndOpenShadow`, which returns as
   soon as the PLUGIN LOADS — the SSH connect, the ADAPTER PATCH and
   populateVaultFromRemote all land later, at layout-ready. A write fired
   before the patch goes to the shadow vault's LOCAL directory and never
   reaches the remote. That is the same race restart-settings.spec hit, and
   the same pre-connect window #342/#429 lives in. With the overlay up the run
   was slow enough that the connect had usually landed first; without it, it
   hadn't. Now: capture the shadow path via the building blocks and block on
   `waitForShadowVaultLoaded` before any test runs.

2. SILENT SKIPS. The rename was `if (await inlineTitle.isVisible(...))` — when
   false it was skipped without a word, leaving the note as `Untitled.md`, and
   the test then failed on `remote.exists('e2e-test-<stamp>.md')` with a
   message that named nothing. `delete` had the same shape around its confirm
   dialog. Note that Playwright's isVisible() does NOT hit-test (an element
   under an overlay still reports visible) while click() does — so overlay
   presence silently flipped which steps worked. Both branches are gone; every
   stage is now asserted and dumps the active file / fileMap / open modals on
   failure.

Drive path is now `app.vault.create/modify/delete` via page.evaluate. In the
shadow window `app.vault.adapter` IS the patched adapter, so the write still
traverses every line of plugin code a keystroke would have reached; the only
thing dropped is Obsidian's own contenteditable→debounce→vault.modify step,
which is not the product under test. The REMOTE assertions — independent SFTP
ground truth via RemoteVerifier — are unchanged, and two are stronger:
`edit` now asserts the original text is GONE (a stray append used to satisfy
it), and `delete` now asserts the file was actually THERE first (it could
previously pass vacuously). Fixed waitForTimeout sleeps replaced with
expect.poll against the remote.
2026-07-14 20:34:44 +09:00
..
helpers test(e2e): close the Settings overlay that was swallowing every click 2026-07-14 20:10:34 +09:00
cache-pressure.spec.ts test(e2e): hard-test matrix across images, plugins, fs, links, cache (17 -> 60) 2026-07-14 18:11:57 +09:00
connect-failure-visible.spec.ts test(e2e): isolate SFTP specs — fix cross-spec log contamination 2026-05-18 13:49:39 +09:00
connect-lifecycle.spec.ts test(e2e): assert real vault-load outcome, demote FE paint to advisory 2026-05-18 15:29:41 +09:00
connect-reconnect.spec.ts test(e2e): assert real vault-load outcome, demote FE paint to advisory 2026-05-18 15:29:41 +09:00
demo.spec.ts refactor(e2e): extract driveConnectFlow + findShadowVaultPath, demo uses them (#255) 2026-05-05 14:48:50 +09:00
fs-visibility.spec.ts test(e2e): fix the harness bugs the first run exposed; keep the real reds red 2026-07-14 19:37:24 +09:00
images.spec.ts test(e2e): close the Settings overlay that was swallowing every click 2026-07-14 20:10:34 +09:00
links-metadata.spec.ts test(e2e): close the Settings overlay that was swallowing every click 2026-07-14 20:10:34 +09:00
playwright.config.ts test(e2e): fix the harness bugs the first run exposed; keep the real reds red 2026-07-14 19:37:24 +09:00
plugin-code-roundtrip.spec.ts test(e2e): fix the harness bugs the first run exposed; keep the real reds red 2026-07-14 19:37:24 +09:00
reflect.spec.ts test(e2e): make the suite trustworthy, and actually test the restart (#342/#429) 2026-07-14 17:25:17 +09:00
restart-settings.spec.ts test(e2e): wait for the shadow window to CONNECT before exercising the adapter 2026-07-14 17:32:59 +09:00
smoke.spec.ts test(e2e): smoke test 2 actually asserts the plugin tab is visible (#254) 2026-05-05 14:09:44 +09:00
sync.spec.ts test(e2e): make sync.spec deterministic — it was passing by luck 2026-07-14 20:34:44 +09:00