diff options
| author | Ben Sima <ben@bensima.com> | 2025-11-26 09:40:59 -0500 |
|---|---|---|
| committer | Ben Sima <ben@bensima.com> | 2025-11-26 09:40:59 -0500 |
| commit | 32e5b5b097c50d0b1d8a3dbcf93163aabf1ee8fb (patch) | |
| tree | f97e3434d1909b078fdc28ff43bc1403602bee69 /Omni | |
| parent | b13c42cc5566aa7365118fddc7f327b4c774a910 (diff) | |
Fix test database isolation: TASK_TEST_MODE takes precedence
Tests were polluting production database because TASK_DB_PATH
took precedence over TASK_TEST_MODE. Now test mode always uses
.tasks/tasks-test.db regardless of TASK_DB_PATH setting.
Diffstat (limited to 'Omni')
| -rw-r--r-- | Omni/Task/Core.hs | 6 | ||||
| -rw-r--r-- | Omni/Task/RaceTest.hs | 8 |
2 files changed, 5 insertions, 9 deletions
diff --git a/Omni/Task/Core.hs b/Omni/Task/Core.hs index 4f7a3d3..2110170 100644 --- a/Omni/Task/Core.hs +++ b/Omni/Task/Core.hs @@ -237,9 +237,9 @@ getTasksDbPath :: IO FilePath getTasksDbPath = do customPath <- lookupEnv "TASK_DB_PATH" testMode <- lookupEnv "TASK_TEST_MODE" - let path = case (customPath, testMode) of - (Just p, _) -> p -- Custom path wins (even in test mode, to allow specific test DBs) - (_, Just "1") -> ".tasks/tasks-test.db" + let path = case (testMode, customPath) of + (Just "1", _) -> ".tasks/tasks-test.db" -- Test mode always uses test db + (_, Just p) -> p -- Custom path for production _ -> ".tasks/tasks.db" pure path diff --git a/Omni/Task/RaceTest.hs b/Omni/Task/RaceTest.hs index 860272d..5dd7fa1 100644 --- a/Omni/Task/RaceTest.hs +++ b/Omni/Task/RaceTest.hs @@ -18,15 +18,11 @@ test = Test.group "Omni.Task.Race" [raceTest] raceTest :: Test.Tree raceTest = Test.unit "concurrent child creation (race condition)" <| do - -- Set up test mode + -- Set up test mode (uses .tasks/tasks-test.db) setEnv "TASK_TEST_MODE" "1" - -- Unset TASK_DB_PATH to ensure we use the test mode default (or set it to .tasks/race-test.db) - -- Actually, since Core.hs respects TASK_DB_PATH if set, we should unset it or set it to our target. - -- Let's set it to .tasks/race-test.db for isolation. - setEnv "TASK_DB_PATH" ".tasks/race-test.db" -- Clean up test database - let testFile = ".tasks/race-test.db" + let testFile = ".tasks/tasks-test.db" exists <- doesFileExist testFile when exists <| removeFile testFile initTaskDb |
