packages feed

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