docs: run tests with an in-memory DATABASE_URL

The docs said tests need BASE_PATH in .env. The full suite (lib, bin and
integration tests) passes with no .env and no BASE_PATH; the only thing
it needs is DATABASE_URL, and ":memory:" works. Without it, DB-backed
tests such as reels::tests::reel_capture_preserves_owner_defaults panic
with "DATABASE_URL must be set".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Cameron CordesandClaude Opus 5.5 committed 2026-10-13 11:09:14 -04:00
1 parent 985f366bc2
commit 84843c1c25
2 files changed
+12 -5

No files matched your search

+5 -5
View File
@@ -25,14 +25,14 @@ RUST_LOG=debug cargo run
### Testing ### Testing
```bash ```bash
# Run all tests (requires BASE_PATH in .env) # Run all tests. DATABASE_URL is the only env var the suite needs; no .env required
cargo test DATABASE_URL=":memory:" cargo test
# Run specific test # Run specific test
cargo test test_name DATABASE_URL=":memory:" cargo test test_name
# Run tests with output # Run tests with output
cargo test -- --nocapture DATABASE_URL=":memory:" cargo test -- --nocapture
``` ```
### Database Migrations ### Database Migrations
@@ -664,7 +664,7 @@ Module map:
## Testing Patterns ## Testing Patterns
Tests require `BASE_PATH` environment variable. Many integration tests create temporary directories and files. Tests need `DATABASE_URL` set; `DATABASE_URL=":memory:"` is enough to run the whole suite without a `.env` (otherwise DB-backed tests such as `reels::tests::reel_capture_preserves_owner_defaults` panic with `DATABASE_URL must be set`). Many integration tests create temporary directories and files.
When testing database code: When testing database code:
- Use in-memory SQLite: `DATABASE_URL=":memory:"` - Use in-memory SQLite: `DATABASE_URL=":memory:"`
+7
View File
@@ -243,3 +243,10 @@ unset.
populated retroactively) [default: `2000`]. Errors don't burn the cap; populated retroactively) [default: `2000`]. Errors don't burn the cap;
only successful hashes count. only successful hashes count.
## Testing
`DATABASE_URL` is the only environment variable the test suite needs, and an
in-memory SQLite database works, so no `.env` is required:
```bash
DATABASE_URL=":memory:" cargo test
```