peregrin-0.1.0: src-test/Main.hs
{-# LANGUAGE OverloadedStrings #-}
module Main ( main ) where
import Control.Applicative ((<$>))
import Database.PeregrinSpec ( mkMigrateSpec )
import Data.Pool (createPool)
import qualified Database.PostgreSQL.Harness.Client as H
import Database.PostgreSQL.Simple (connectPostgreSQL, close)
import Test.Hspec
main :: IO ()
main = do
-- HSpec has no easy way to get "other" command line parameters, so
-- we'll just settle for a hardcoded value here.
let url = "http://localhost:8900"
-- Connection pool creation function. We use a fresh temporary
-- database for every connection pool.
let mkConnectionPool = do
connectionString <- H.toConnectionString <$> H.createTemporaryDatabase url
createPool (connectPostgreSQL connectionString) close 1 1 5
-- Run
hspec $ mkMigrateSpec mkConnectionPool