module Main where
import qualified Database.Postgres.Temp as TempDb
import Test.Tasty
import qualified Database.Beam.Postgres.Test.Select as Select
import qualified Database.Beam.Postgres.Test.Marshal as Marshal
import qualified Database.Beam.Postgres.Test.DataTypes as DataType
import qualified Database.Beam.Postgres.Test.Migrate as Migrate
main :: IO ()
main = defaultMain $ withDb $ \getDb ->
let getConnStr = TempDb.toConnectionString <$> getDb
in testGroup "beam-postgres tests"
[ Marshal.tests getConnStr
, Select.tests getConnStr
, DataType.tests getConnStr
, Migrate.tests getConnStr
]
where
withDb = withResource
(either (\e -> error $ "Failed to start DB: " <> show e) pure =<< TempDb.startConfig mempty)
TempDb.stop