packages feed

hasql-pool-1.3.0.4: src/integration-tests/Specs/BySubject/UsageError/SessionSpec.hs

module Specs.BySubject.UsageError.SessionSpec where

import Hasql.Pool
import Hasql.Session qualified as Session
import Helpers.Scripts qualified as Scripts
import Helpers.Sessions qualified as Sessions
import Test.Hspec
import Prelude

spec :: SpecWith Scripts.ScopeParams
spec = do
  it "Simulation of connection error works" \scopeParams ->
    Scripts.onAutotaggedPool 1 10 1_800 1_800 scopeParams \_ pool -> do
      res <- use pool $ Sessions.closeConn >> Sessions.selectOne
      shouldSatisfy res $ \case
        Left (SessionUsageError (Session.QueryError _ _ (Session.ClientError _))) -> True
        _ -> False