diff --git a/yesod-test/Yesod/Test.hs b/yesod-test/Yesod/Test.hs index c82e6cc0..eced072c 100644 --- a/yesod-test/Yesod/Test.hs +++ b/yesod-test/Yesod/Test.hs @@ -7,6 +7,7 @@ {-# LANGUAGE ImplicitParams #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} +{-# LANGUAGE MultiParamTypeClasses #-} {-| Yesod.Test is a pragmatic framework for testing web applications built @@ -245,6 +246,7 @@ import Network.Wai.Test hiding (assertHeader, assertNoHeader, request) import Control.Monad.Trans.Reader (ReaderT (..)) import Conduit (MonadThrow) import Control.Monad.IO.Class +import qualified Control.Monad.State.Class as MS import System.IO import Yesod.Core.Unsafe (runFakeHandler) import Yesod.Test.TransversingCSS @@ -1601,6 +1603,11 @@ instance YesodDispatch site => Hspec.Example (SIO (YesodExampleData site) a) whe newtype SIO s a = SIO (ReaderT (IORef s) IO a) deriving (Functor, Applicative, Monad, MonadIO, MonadThrow, MonadUnliftIO) +instance MS.MonadState s (SIO s) + where + get = getSIO + put = putSIO + getSIO :: SIO s s getSIO = SIO $ ReaderT readIORef diff --git a/yesod-test/yesod-test.cabal b/yesod-test/yesod-test.cabal index e2c6334e..bd597764 100644 --- a/yesod-test/yesod-test.cabal +++ b/yesod-test/yesod-test.cabal @@ -34,6 +34,7 @@ library , pretty-show >= 1.6 , text , time + , mtl >= 2.0.0 , transformers >= 0.2.2 , wai >= 3.0 , wai-extra