From 32e5b5b097c50d0b1d8a3dbcf93163aabf1ee8fb Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Wed, 26 Nov 2025 09:40:59 -0500 Subject: 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. --- Omni/Task/Core.hs | 6 +++--- Omni/Task/RaceTest.hs | 8 ++------ 2 files changed, 5 insertions(+), 9 deletions(-) (limited to 'Omni/Task') 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 -- cgit v1.2.3