{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE NoImplicitPrelude #-} module Omni.Task.MigrationTest where import Alpha import qualified Data.Set as Set import Omni.Task.Core import qualified Omni.Test as Test import System.Directory (doesFileExist, removeFile) import System.Environment (setEnv) test :: Test.Tree test = Test.group "Omni.Task.Migration" [migrationStartupTest] migrationStartupTest :: Test.Tree migrationStartupTest = Test.unit "database initializes with schema migrations" <| do setEnv "TASK_TEST_MODE" "1" let testFile = "_/tmp/tasks-test.db" exists <- doesFileExist testFile when exists <| removeFile testFile initTaskDb withDb <| \conn -> do tasksCols <- getTableColumns conn "tasks" activityCols <- getTableColumns conn "task_activity" retryCols <- getTableColumns conn "retry_context" Set.fromList ["id", "title", "status"] `Set.isSubsetOf` Set.fromList tasksCols Test.@?= True Set.fromList ["id", "task_id", "stage"] `Set.isSubsetOf` Set.fromList activityCols Test.@?= True Set.fromList ["task_id", "attempt", "reason"] `Set.isSubsetOf` Set.fromList retryCols Test.@?= True removeFile testFile