packages feed

sydtest-yesod 0.3.0.3 → 0.3.1.0

raw patch · 4 files changed

+45/−4 lines, 4 filesdep +wai

Dependencies added: wai

Files

CHANGELOG.md view
@@ -1,5 +1,11 @@ # Changelog +## [0.3.1.0] - 2025-12-29++### Added++* Support for adding Yesod Middlewares to your Yesod application within testing+ ## [0.3.0.3] - 2025-03-20  ### Changed
src/Test/Syd/Yesod.hs view
@@ -17,10 +17,13 @@     yesodSpecWithSiteSupplier,     yesodSpecWithSiteSupplierWith,     yesodSpecWithSiteSetupFunc,+    yesodSpecWithSiteSetupFuncWithMiddlewares,     yesodSpecWithSiteSetupFunc',+    yesodSpecWithSiteSetupFuncWithMiddlewares',      -- *** Setup functions     yesodClientSetupFunc,+    yesodClientSetupFuncWithMiddlewares,      -- ** Tests against a remote instance of a site     yesodE2ESpec,
src/Test/Syd/Yesod/Def.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE RankNTypes #-}@@ -13,17 +14,24 @@     yesodSpecWithSiteSupplier,     yesodSpecWithSiteSupplierWith,     yesodSpecWithSiteSetupFunc,+    yesodSpecWithSiteSetupFuncWithMiddlewares,     yesodSpecWithSiteSetupFunc',+    yesodSpecWithSiteSetupFuncWithMiddlewares',     yesodClientSetupFunc,+    yesodClientSetupFuncWithMiddlewares,     YesodSpec,     yit,     ydescribe,   ) where +#if !MIN_VERSION_base(4,20,0)+import Data.List (foldl')+#endif import GHC.Stack (HasCallStack) import Network.HTTP.Client as HTTP import Network.URI+import Network.Wai (Middleware) import Test.Syd import Test.Syd.Wai import Test.Syd.Yesod.Client@@ -148,6 +156,15 @@   TestDef (HTTP.Manager ': outers) () yesodSpecWithSiteSetupFunc setupFunc = yesodSpecWithSiteSetupFunc' $ \man () -> setupFunc man +-- `yesodSpecWithSiteSetupFunc` with middlewares+yesodSpecWithSiteSetupFuncWithMiddlewares ::+  (YesodDispatch site) =>+  [Middleware] ->+  (HTTP.Manager -> SetupFunc site) ->+  TestDef (HTTP.Manager ': outers) (YesodClient site) ->+  TestDef (HTTP.Manager ': outers) ()+yesodSpecWithSiteSetupFuncWithMiddlewares middlewares setupFunc = yesodSpecWithSiteSetupFuncWithMiddlewares' middlewares $ \man () -> setupFunc man+ -- | Using a function that supplies a 'site', using a 'SetupFunc'. -- -- This function assumed that you've already set up the 'HTTP.Manager' beforehand using something like 'managerSpec'.@@ -160,9 +177,23 @@   site <- setupFunc man inner   yesodClientSetupFunc man site +yesodSpecWithSiteSetupFuncWithMiddlewares' ::+  (YesodDispatch site) =>+  [Middleware] ->+  (HTTP.Manager -> inner -> SetupFunc site) ->+  TestDef (HTTP.Manager ': outers) (YesodClient site) ->+  TestDef (HTTP.Manager ': outers) inner+yesodSpecWithSiteSetupFuncWithMiddlewares' middlewares setupFunc = setupAroundWith' $ \man inner -> do+  site <- setupFunc man inner+  yesodClientSetupFuncWithMiddlewares middlewares man site+ yesodClientSetupFunc :: (YesodDispatch site) => HTTP.Manager -> site -> SetupFunc (YesodClient site)-yesodClientSetupFunc man site = do-  application <- liftIO $ Yesod.toWaiAppPlain site+yesodClientSetupFunc = yesodClientSetupFuncWithMiddlewares []++yesodClientSetupFuncWithMiddlewares :: (YesodDispatch site) => [Middleware] -> HTTP.Manager -> site -> SetupFunc (YesodClient site)+yesodClientSetupFuncWithMiddlewares middlewares man site = do+  application' <- liftIO $ Yesod.toWaiAppPlain site+  let application = foldl' (\app middleware -> middleware app) application' middlewares   p <- applicationSetupFunc application   let client =         YesodClient
sydtest-yesod.cabal view
@@ -1,11 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.36.0.+-- This file has been generated from package.yaml by hpack version 0.37.0. -- -- see: https://github.com/sol/hpack  name:           sydtest-yesod-version:        0.3.0.3+version:        0.3.1.0 synopsis:       A yesod companion library for sydtest category:       Testing homepage:       https://github.com/NorfairKing/sydtest#readme@@ -53,6 +53,7 @@     , sydtest-wai     , text     , time+    , wai     , xml-conduit     , yesod-core     , yesod-test