mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-07-23 04:52:58 +00:00
Retire obsolete browser Harness
This commit is contained in:
@@ -2,15 +2,15 @@
|
||||
|
||||
## Status
|
||||
|
||||
Proposed / Spike Implemented
|
||||
Accepted / Implemented
|
||||
|
||||
## Release
|
||||
|
||||
Not yet. Planned after the serviceFeature refactoring branch is reviewed.
|
||||
Not yet. Included in the 1.0.0 release preparation.
|
||||
|
||||
## Context
|
||||
|
||||
The current end-to-end tests run through Vitest browser mode and a mocked Obsidian environment in `test/harness`. This has been useful for exercising synchronisation flows without launching Obsidian, but it is no longer a reliable final signal for plug-in behaviour.
|
||||
When this decision was proposed, the end-to-end tests ran through Vitest browser mode and a mocked Obsidian environment in `test/harness`. This was useful for exercising synchronisation flows without launching Obsidian, but it was no longer a reliable final signal for plug-in behaviour.
|
||||
|
||||
The main issues are:
|
||||
|
||||
@@ -31,7 +31,7 @@ The long-term test pyramid should be:
|
||||
2. Integration tests for CouchDB, Object Storage, P2P services, database operations, and replication protocols.
|
||||
3. Real Obsidian E2E tests for boot-up sequence, vault reflection, command registration, settings dialogues, restart scheduling, and user-visible workflows.
|
||||
|
||||
The existing `test/harness` should be demoted to a transitional compatibility layer. It may remain temporarily while the real Obsidian runner reaches parity for critical flows, but new high-level E2E coverage should target the real runner.
|
||||
Retain the existing browser Harness only as a transitional compatibility layer while the real Obsidian runner reaches parity for critical flows, then remove it. New high-level E2E coverage targets the real runner.
|
||||
|
||||
## Non-Goals
|
||||
|
||||
@@ -155,7 +155,7 @@ Current verification:
|
||||
Known limits:
|
||||
|
||||
- The smoke runner currently proves only one-vault launch and plug-in load readiness. Broader workflows are covered by separate real Obsidian scripts, including CouchDB upload, startup scan, two-vault note synchronisation, Hidden File Sync, Customisation Sync, and setting Markdown export.
|
||||
- Cross-platform support is still discovery-level. The working path has been validated on Linux ARM64. macOS and Windows should be validated in their own environments as follow-up work.
|
||||
- The working path has been validated on Linux ARM64 and on macOS with Obsidian 1.12.7. Windows remains unverified.
|
||||
- CI wiring is intentionally not implemented. The runner depends on a licensed desktop application and is treated as a local verification tool.
|
||||
|
||||
### Phase 2: First Real Workflow
|
||||
@@ -199,9 +199,10 @@ Current implementation status:
|
||||
|
||||
Current implementation status:
|
||||
|
||||
- `test/harness` is now documented as a transitional compatibility layer.
|
||||
- New broad E2E work should target `test/e2e-obsidian/` when real Obsidian behaviour is the risk being tested.
|
||||
- The next high-value scenarios are RedFlag variants and Fast Setup (Simple Fetch) variants, not a line-by-line migration of `test/suite`.
|
||||
- The mocked Vitest browser suites, their P2P runner, their root-level relay helpers, and the manual `harness-ci` workflow have been removed after maintained suites covered the critical flows.
|
||||
- CouchDB and Object Storage combinations, with and without encryption, are owned by the CLI two-Vault matrix. P2P validation is owned by the CLI Compose E2E suite. Plug-in lifecycle and vault integration are owned by real Obsidian E2E.
|
||||
- The Obsidian compatibility implementation still needed by the Webapp has moved to `src/apps/webapp/obsidianMock.ts`; it is not a retained browser E2E Harness.
|
||||
- Remaining high-value scenarios, including RedFlag and Fast Setup (Simple Fetch) variants, should be added according to their owning integration boundary rather than copied line by line from the retired suite.
|
||||
|
||||
## Local Verification Strategy
|
||||
|
||||
@@ -240,12 +241,12 @@ Real Obsidian E2E is a local verification layer. It should not be wired into the
|
||||
4. Add `test:e2e:obsidian:smoke` for one-vault plug-in load.
|
||||
5. Document required local environment variables, especially `OBSIDIAN_BINARY`.
|
||||
6. Port one CouchDB-backed workflow after the smoke test is stable.
|
||||
7. Mark `test/harness` as transitional and block new broad E2E work from targeting it.
|
||||
7. Retire the browser Harness after critical workflows have replacement coverage.
|
||||
8. Add the local suite script for broader local verification.
|
||||
|
||||
## Consequences
|
||||
|
||||
- Real Obsidian E2E becomes the source of truth for plug-in lifecycle and vault integration.
|
||||
- Unit and integration tests remain the primary fast feedback loops.
|
||||
- The old browser harness can be deleted once the new runner covers the critical workflows.
|
||||
- The old browser Harness has been deleted now that the replacement coverage owns its critical workflows.
|
||||
- The project will gain slower but higher-confidence tests for the behaviours most likely to differ between mocks and Obsidian itself.
|
||||
|
||||
Reference in New Issue
Block a user