-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A persistent-sqlite companion library for sydtest -- -- A persistent-sqlite companion library for sydtest @package sydtest-persistent-sqlite @version 0.2.0.2 -- | Testing with an in-memory sqlite database using persistent-sqlite module Test.Syd.Persistent.Sqlite -- | Declare a test suite that uses a database connection. -- -- Example usage -- --
--   -- Database Definition
--   share
--     [mkPersist sqlSettings, mkMigrate "migrateExample"]
--     [persistLowerCase|
--   Person
--       name String
--       age Int Maybe
--       deriving Show Eq
--   |]
--   
--   -- Tests
--   spec :: Spec
--   spec =
--     persistSqliteSpec migrateExample $ do
--       it "can write and read this example person" $ \pool ->
--         runSqliteTest pool $ do
--           let p = Person {personName = "John Doe", personAge = Just 21}
--           i <- insert p
--           mp <- get i
--           liftIO $ mp `shouldBe` Just p
--   
-- -- This sets up an in-memory database connection around every test, so -- state is not preserved accross tests. persistSqliteSpec :: Migration -> SpecWith ConnectionPool -> SpecWith a -- | Set up a sqlite connection and migrate it to run the given function. withConnectionPool :: Migration -> (ConnectionPool -> IO r) -> IO r -- | The SetupFunc version of withConnectionPool. connectionPoolSetupFunc :: Migration -> SetupFunc ConnectionPool -- | Get a connection from the pool, run the given action, and then return -- the connection to the pool. -- -- This function performs the given action in a transaction. If an -- exception occurs during the action, then the transaction is rolled -- back. -- -- Note: This function previously timed out after 2 seconds, but this -- behavior was buggy and caused more problems than it solved. Since -- version 2.1.2, it performs no timeout checks. runSqlPool :: forall backend m a. (MonadUnliftIO m, BackendCompatible SqlBackend backend) => ReaderT backend m a -> Pool backend -> m a -- | A flipped version of runSqlPool to run your tests runSqliteTest :: ConnectionPool -> SqlPersistM a -> IO a -- | Helper function to run a Migration before/in a test suite that -- works accross versions of persistent. migrationRunner :: forall (m :: Type -> Type). MonadIO m => Migration -> ReaderT SqlBackend m () -- | Test that the given migration succeeds, when applied to the current -- database. -- -- See 'Test.Syd.Persistent.migrationsSucceedsSpec" for details. sqliteMigrationSucceedsSpec :: FilePath -> Migration -> Spec