serversession/serversession-backend-acid-state/tests/Main.hs

22 lines
755 B
Haskell

module Main (main) where
import Data.Acid.Local (openLocalState, createCheckpointAndClose)
import Data.Acid.Memory (openMemoryState)
import Test.Hspec
import Web.ServerSession.Backend.Acid
import Web.ServerSession.Core.StorageTests
import qualified Control.Exception as E
main :: IO ()
main =
E.bracket
(AcidStorage <$> openLocalState emptyState)
(createCheckpointAndClose . acidState) $
\acidLocal -> hspec $ parallel $ do
acidMem <- runIO $ AcidStorage <$> openMemoryState emptyState
describe "AcidStorage on memory only" $
allStorageTests acidMem it runIO shouldBe shouldReturn shouldThrow
describe "AcidStorage on local storage" $
allStorageTests acidLocal it runIO shouldBe shouldReturn shouldThrow