+++ title = "[TRIAGE] Integration test isolation strategy — per-test temp DB vs shared DB with transaction rollback?" priority = 8 status = "todo" ticket_type = "task" dependencies = ["ce1e4f"] +++ This is a triage decision ticket. It must be resolved before dependent implementation tickets can proceed. Integration test isolation strategy: should each test get its own temporary database (per-test DB creation/deletion) or should tests share a database and use transaction rollback for cleanup? 1. **Per-test temp DB** — each test creates a fresh SQLite file (or in-memory DB) and drops it on cleanup. Maximum isolation, slower due to migration overhead per test. 2. **Shared DB with transaction rollback** — all tests share one DB, each test wraps its operations in a transaction that is rolled back at the end. Faster, but requires the test harness to manage transactions. 3. **Per-test in-memory SQLite** — SQLite `:memory:` database per test. Fast (no file I/O) and fully isolated. May require `--test-threads=1` if the server shares state. 1. Research the options above and choose the best approach for this project. 2. Update ticket 9b581f (test harness) with the chosen isolation strategy. 3. Mark this ticket done with a note on the chosen approach in the body or a comment. `chore(quotesdb): resolve triage — integration-test-isolation-strategy-pertest-temp-db-vs-share`