packages feed

pgmq-hasql-0.1.1.0: test/Main.hs

{-# LANGUAGE OverloadedStrings #-}

module Main (main) where

import AdvancedOpsSpec qualified
import AllFunctionsDecoderSpec qualified
import DecoderValidationSpec qualified
import EphemeralDb (withPgmqPool)
import MessageSpec qualified
import QueueSpec qualified
import RoundTripSpec qualified
import SchemaSpec qualified
import Test.Tasty (defaultMain, testGroup)
import TopicSpec qualified

main :: IO ()
main = do
  -- Run tests with a shared temporary database
  result <- withPgmqPool $ \pool -> do
    let tree =
          testGroup
            "pgmq-hasql"
            [ QueueSpec.tests pool,
              MessageSpec.tests pool,
              AdvancedOpsSpec.tests pool,
              SchemaSpec.tests pool,
              RoundTripSpec.tests pool,
              DecoderValidationSpec.tests pool,
              AllFunctionsDecoderSpec.tests pool,
              TopicSpec.tests pool
            ]
    defaultMain tree
  case result of
    Left err -> error $ "Failed to start temp database: " <> show err
    Right () -> pure ()