diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -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
diff --git a/src/Test/Syd/Yesod.hs b/src/Test/Syd/Yesod.hs
--- a/src/Test/Syd/Yesod.hs
+++ b/src/Test/Syd/Yesod.hs
@@ -17,10 +17,13 @@
     yesodSpecWithSiteSupplier,
     yesodSpecWithSiteSupplierWith,
     yesodSpecWithSiteSetupFunc,
+    yesodSpecWithSiteSetupFuncWithMiddlewares,
     yesodSpecWithSiteSetupFunc',
+    yesodSpecWithSiteSetupFuncWithMiddlewares',
 
     -- *** Setup functions
     yesodClientSetupFunc,
+    yesodClientSetupFuncWithMiddlewares,
 
     -- ** Tests against a remote instance of a site
     yesodE2ESpec,
diff --git a/src/Test/Syd/Yesod/Def.hs b/src/Test/Syd/Yesod/Def.hs
--- a/src/Test/Syd/Yesod/Def.hs
+++ b/src/Test/Syd/Yesod/Def.hs
@@ -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
diff --git a/sydtest-yesod.cabal b/sydtest-yesod.cabal
--- a/sydtest-yesod.cabal
+++ b/sydtest-yesod.cabal
@@ -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
