{- AUTOCOLLECT.TEST -} {-# LANGUAGE GADTs #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE TypeApplications #-} module READMETest ( -- $AUTOCOLLECT.TEST.export$ ) where import Test.Tasty.HUnit import Database.Persist.Monad import Database.Persist.Monad.TestUtils import Example test = testCase "withTransaction example works" $ do let foo :: (MonadSqlQuery m) => m () foo = insert_ $ person "Alice" bar :: (MonadSqlQuery m) => m () bar = insert_ $ person "Bob" fooAndBar :: (MonadSqlQuery m) => m () fooAndBar = withTransaction $ foo >> bar runMockSqlQueryT fooAndBar [ withRecord @Person $ \case Insert_ _ -> Just () _ -> Nothing , withRecord @Person $ \case Insert_ _ -> Just () _ -> Nothing ]