mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
Repairs (74 tests across 6 files): - rbac.spec.ts, settings.spec.ts: fix obsolete auth-state path (test-results/.auth/user.json -> .playwright/.auth/user.json via authFile import from playwright.config.ts) - state-bleed-audit.spec.ts, gui-file-carry.spec.ts, full-session.spec.ts: update bare tool routes (/resize -> /image/resize, etc.) to match the 2.0 /:modality/:toolId routing - gui-settings-rbac.spec.ts: fix 2 tests with bare /resize route Quarantine (65 tests across 2 files, tagged with test.skip()): - gui-performance.spec.ts (62 tests): bare routes throughout + selector drift; mechanical route fix is tractable but needs UI verification pass - theme.spec.ts (3 tests): footer theme toggle selector needs 2.0 UI verification QUARANTINE.md updated with full triage table. Vitest parity confirmed.
4.9 KiB
4.9 KiB
Quarantine List (Phase 4b)
Phase 4b serial-bucket cleanup. Superseded specs removed, quick-win route/auth
fixes applied, intractable specs quarantined with test.skip().
Removed (superseded by Phase 3 device-emulated specs)
| Spec | Tests | Reason |
|---|---|---|
gui-visual-mobile.spec.ts |
27 | Superseded by device-mobile.spec.ts (real Pixel 7 / iPhone 14 emulation). Used bare routes that 404 on prod preview. |
gui-visual-tablet.spec.ts |
27 | Superseded by device-tablet.spec.ts (real iPad / Galaxy Tab emulation). Same bare-route issue. |
gui-responsive.spec.ts |
82 | Superseded by device-mobile.spec.ts + device-tablet.spec.ts. All responsive chrome, overflow, layout tests covered by device specs with real touch/DPR. |
Repaired
| Spec | Tests | Fix |
|---|---|---|
rbac.spec.ts |
5 | Fixed storageState: "test-results/.auth/user.json" to authFile import from playwright.config.ts (path is .playwright/.auth/user.json). |
settings.spec.ts |
8 | Same auth-path fix in the skipped API Keys section has generate button test. |
state-bleed-audit.spec.ts |
8 | Updated all bare tool routes (/resize -> /image/resize, /rotate -> /image/rotate, etc.) to match 2.0 /:modality/:toolId routing. |
gui-file-carry.spec.ts |
6 | Same bare-route fix + URL assertions (toHaveURL("/resize") -> toHaveURL("/image/resize")). |
full-session.spec.ts |
8 | Same bare-route fix for resize, rotate, convert, crop, compress, strip-metadata. |
gui-settings-rbac.spec.ts |
39 (2 with bare routes) | Fixed 2 tests that navigated to /resize instead of /image/resize. |
Quarantined (skipped via test.skip())
| Spec | Tests | Reason | Tractability | Follow-up |
|---|---|---|---|---|
gui-performance.spec.ts |
62 | 62 tests use bare tool routes (/resize, /compress, /rotate, etc.) that 404 on the 2.0 prod preview. Mechanical route fix is needed, but the file also references selectors (fullscreen grid search, tool-list layout, sidebar tool entries) that need 2.0 UI verification after route fix. |
Medium -- route fix is mechanical, selector verification needs UI run | Phase 4 tail |
theme.spec.ts |
3 | Asserts button[title='Toggle Theme'] in footer and Privacy Policy link visibility. The 2.0 UI hides the footer on mobile viewports and may have changed the theme toggle mechanism. |
Low -- 3 tests, needs UI verification | Phase 4 tail |
Still-running serial specs (not quarantined, expected to pass)
These specs use proper role-based/text-based selectors and the openSettings() helper.
They were validated by code review and partial test run:
gui-settings-general.spec.ts(56 tests) -- settings dialog navigation, general tab, system settings, about, AI features, tools deep, analytics, audit loggui-settings-expanded.spec.ts(77 tests) -- dialog state management, extended settings persistencegui-settings-rbac.spec.ts(39 tests) -- admin/editor/user role visibility, endpoint verificationgui-settings-people.spec.ts(35 tests) -- people tab CRUD, teams tab, roles tabgui-settings-security.spec.ts(15 tests) -- change password form, API keys tabgui-settings-apikeys.spec.ts(15 tests) -- API key generation, scoping, deletiongui-settings-tools.spec.ts(12 tests) -- tool enable/disable, analytics consentsettings.spec.ts(8 tests) -- basic settings dialog open/closerbac.spec.ts(5 tests) -- admin/user/editor role tab visibilityrbac-full.spec.ts(8 tests) -- people management, roles, audit log, API key scoping, custom rolespeople.spec.ts(15 tests) -- people API CRUD + UI table/search/actionssecurity.spec.ts(21 tests) -- authentication, session, CSRF, API securityapi.spec.ts(20 tests) -- API endpoint testsi18n.spec.ts(15 tests) -- locale detection, switching, persistence, RTLstate-bleed-audit.spec.ts(8 tests) -- cross-tool state isolation (repaired)full-session.spec.ts(8 tests) -- end-to-end tool workflows (repaired)gui-file-carry.spec.ts(6 tests) -- file carry between tools (repaired)
Local doc-binary skips (not quarantine, informational)
The following integration test files skip cleanly via describe.skipIf
because pandoc, libreoffice/soffice, pdfcpu, and pdf2docx are not
installed on this development machine. These pass in CI where the Docker image
provides all binaries:
convert-document.test.tsepub-convert.test.tshtml-to-pdf.test.tsdoc-to-pdf.test.tspdf-to-docx.test.tscompress-pdf.test.tspdf-to-image.test.ts
Total local integration skips: 217 tests across 7 files.
Summary
| Category | Files | Tests |
|---|---|---|
| Removed (superseded) | 3 | 136 |
| Repaired (route + auth fixes) | 6 | 74 |
Quarantined (test.skip) |
2 | 65 |
| Running (not quarantined) | 17 | 389 |
65 tests remain quarantined for Phase 4 tail follow-up (mostly the
gui-performance.spec.ts bare-route bulk fix + UI verification).