Files
skills/plugins/document-navigator/docs/api-stack/api/api-migrations/tests/integration
admin 9bf56a806b Move docs/ package mirror into document-navigator plugin
Relocate the ~6k-file docs tree from the repo root into
plugins/document-navigator/docs/ so the plugin is self-contained and
portable. docs/superpowers/ (specs and plans) stays at the repo root.

Moved via cp+rm rather than git mv because directory rename() fails with
EPERM on this WSL /mnt DrvFs mount; git rename-detection pairs the
identical-content files at commit time.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 01:10:00 +01:00
..

Integration tests — deferred

The three dialect roundtrip tests (sqlite, postgres, surrealql) are deferred to a follow-up change. Justification:

  • sqlite-wasm requires a Web Worker and the WASM binary; running it under vitest+Node in forks pool needs a non-trivial polyfill layer that does not yet ship in @suaveplan/testing and would inflate this change beyond scope. The MemoryAdapter in src/runner/runner.test.ts exercises the full apply/select/insert/delete roundtrip against a real in-memory store satisfying the same MigrationAdapter contract — every spec scenario is covered.
  • postgres and surrealql roundtrips require Docker testcontainers (@suaveplan/testing-integration-postgres, -surrealdb) which are available but pull large images on every CI run. They will land in add-api-migrations-integration-tests together with the sqlite-wasm worker setup so the env requirements stay coherent.

The shipped unit tests cover:

  • DDL emission per dialect (src/adapters/<dialect>/<dialect>.test.ts).
  • Row normalisation roundtrip per dialect.
  • Parameterised insert/delete per dialect.
  • Full apply / drift-detect / rollback flow via the in-memory MemoryAdapter in src/runner/runner.test.ts.

These do not stub crypto, fs, or the adapter contract — every test exercises the real node:crypto createHash and node:fs/promises readdir/readFile/stat calls.