pg-entity-0.0.2.0: test/Main.hs
module Main where
import Data.Pool (createPool, withResource)
import qualified Database.PostgreSQL.Simple as PG
import qualified Database.Postgres.Temp as Postgres.Temp
import qualified EntitySpec
import qualified GenericsSpec
import Optics.Core
import Test.Tasty (TestTree, defaultMain, testGroup)
import Utils
main :: IO ()
main = do
env <- getTestEnvironment
withResource (env ^. #pool) migrate
spec <- traverse (`runTestM` env) specs
defaultMain . testGroup "pg-entity tests" $ spec
specs :: [TestM TestTree]
specs =
[ GenericsSpec.spec
, EntitySpec.spec
]
getTestEnvironment :: IO TestEnv
getTestEnvironment = do
eitherDb <- Postgres.Temp.start
case eitherDb of
Right db -> do
pool <-
createPool
(PG.connectPostgreSQL $ Postgres.Temp.toConnectionString db)
PG.close
1
100000000
50
pure TestEnv{..}
Left _ -> error "meh"