Files
kandev/docs/plans/lsp-file-intelligence-progress/task-03-progress-e2e.md
T
2026-08-05 10:57:24 +01:00

3.9 KiB

id, title, status, wave, depends_on, plan, spec
id title status wave depends_on plan spec
03-progress-e2e Desktop and tablet progress E2E completed 3
02-progress-disclosure
plan.md ../../specs/lsp-file-intelligence/spec.md

Task 03: Desktop and Tablet Progress E2E

Acceptance

  • The deterministic fake Kotlin server can hold initialize work, report determinate progress, and finish on a test-controlled signal.
  • Desktop E2E proves reported progress, the no-report fallback, completion copy, and lifecycle actions through the UI.
  • Coarse-pointer tablet E2E proves drawer presentation, touch geometry, viewport containment, and no horizontal overflow while existing phone no-LSP coverage stays green.

Verification

cd apps/web && pnpm e2e:run tests/lsp/lsp-file-intelligence.spec.ts
cd apps/web && pnpm e2e:run --no-build -- --project=mobile-chrome tests/lsp/mobile-lsp-file-intelligence.spec.ts

Files Likely Touched

  • apps/web/e2e/fixtures/fake-lsp-server.mjs
  • apps/web/e2e/tests/lsp/lsp-e2e-helpers.ts
  • apps/web/e2e/tests/lsp/lsp-file-intelligence.spec.ts
  • apps/web/e2e/tests/lsp/mobile-lsp-file-intelligence.spec.ts
  • Existing Docker/SSH LSP specs where one-click lifecycle assumptions require migration.

Dependencies

Task 02.

Parallelism

Sequential.

Inputs

  • Spec progress and responsive scenarios.
  • Existing LSP fake-server event log and task seeding helpers.

Output Contract

Record RED/GREEN E2E evidence, exact commands and outcomes, migrated selectors/actions, screenshots or rendered geometry evidence, and update this task plus plan.md.

Result

  • RED: desktop tests first observed no project-work disclosure; the initial tablet test also exposed the tablet file tree's different panel root. Container coverage then caught a lifecycle-helper race with the popover's closing animation.
  • GREEN: the fake server can hold initialization and emit controlled begin/report/end frames; desktop proves reported and no-report states, tablet proves the shared drawer and touch geometry, and the lifecycle helper now keys off the trigger's authoritative expanded state.
  • Review hardening: desktop crash recovery now proves the close reason, error state, and Retry action before reconnecting, while cross-language crash isolation retains the surviving connection.
  • Review hardening: elapsed-time E2E assertions follow the localized English unit catalog (sec) instead of the removed hard-coded suffix.
  • Review hardening: the secondary-repository task-host scenario pins a target opened from the Files tree, navigates back to it through LSP, and proves the existing task-root-relative tab is reused instead of duplicated.
  • Review hardening: the full Kotlin protocol scenario accepts the fake server's completion item without textEdit, verifies Monaco inserts it through the current-word fallback range, and undoes the edit before continuing navigation and save coverage.
  • Review hardening: the fake server marks its completion list incomplete, and the full Kotlin protocol scenario proves continued typing produces a trigger-kind-3 refresh before accepting the item.
  • CI hardening: the SSH boundary scenario asserts the localized unsupported-executor category instead of the removed backend transport sentence.
  • Verified:
    • pnpm e2e:run --no-build -- --project=chromium tests/lsp/lsp-file-intelligence.spec.ts — 13 passed
    • pnpm e2e:run tests/lsp/lsp-file-intelligence.spec.ts -- --grep "runs Kotlin intelligence through the task host" — 1 production-build Chromium scenario passed with incomplete completion retriggering
    • pnpm e2e:run --no-build -- --project=mobile-chrome tests/lsp/mobile-lsp-file-intelligence.spec.ts — 3 passed
    • KANDEV_E2E_CONTAINERS=1 pnpm e2e:run --no-build -- --project=containers tests/docker/lsp-file-intelligence.spec.ts — 3 passed
    • KANDEV_E2E_CONTAINERS=1 pnpm e2e:run --no-build -- --project=containers tests/ssh/lsp-unsupported-executor.spec.ts — 1 passed