Merge pull request #1705 from masaeedu/addmonadstate
Add MonadState instance for SIO
This commit is contained in:
commit
9cb8d2d369
@ -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
|
||||
|
||||
|
||||
@ -34,6 +34,7 @@ library
|
||||
, pretty-show >= 1.6
|
||||
, text
|
||||
, time
|
||||
, mtl >= 2.0.0
|
||||
, transformers >= 0.2.2
|
||||
, wai >= 3.0
|
||||
, wai-extra
|
||||
|
||||
Loading…
Reference in New Issue
Block a user