mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 19:19:19 +02:00
fix: remove DB_ENV auto-detection; require explicit DB_ENV=test for tests
src/config.php: remove the file-existence fallback that silently redirected
all requests to test.db whenever that file was present on disk. getDatabasePath()
now always returns the production DB unless DB_ENV=test is explicitly set.
tests/run-tests.php: putenv('DB_ENV=test') at the top so the suite always
targets test.db regardless of what is set in the shell environment.
tests/Unit/DatabaseTest.php, tests/Integration/SearchTest.php,
tests/Security/SecurityTest.php: same putenv() guard added to each file so
they work correctly when run standalone (e.g. just test-unit).
justfile: all test and DB-development recipes now prefix DB_ENV=test to their
php/sqlite3 commands, making the intent explicit in the recipe itself.
Fixes: a developer who ran the test suite and kept test.db on disk would
silently hit test data when browsing the local site with no DB_ENV set.
This commit is contained in:
2
TODO.md
2
TODO.md
@@ -410,7 +410,7 @@ Goal: rename the tables and column to the canonical M2M pattern (`tags`, `thesis
|
||||
future API endpoint) a partial failure leaves orphaned rows. Wrap the body in
|
||||
`BEGIN … COMMIT / ROLLBACK` (check `$this->pdo->inTransaction()` to avoid nesting).
|
||||
|
||||
- [ ] **DB config auto-detection is fragile** — `src/config.php` switches to `test.db` whenever the
|
||||
- [x] **DB config auto-detection is fragile** — `src/config.php` switches to `test.db` whenever the
|
||||
file exists locally, which means a developer who ran tests and forgot to delete `test.db` will
|
||||
silently hit test data on a local production-mirror. Make the default `prod`; require explicit
|
||||
`DB_ENV=test` to use the test database.
|
||||
|
||||
Reference in New Issue
Block a user