sydtest-webdriver-yesod 0.0.0.1 → 0.0.1.0
raw patch · 2 files changed
+25/−10 lines, 2 filesdep +wai
Dependencies added: wai
Files
src/Test/Syd/Webdriver/Yesod.hs view
@@ -16,6 +16,7 @@ module Test.Syd.Webdriver.Yesod ( -- * Defining webdriver tests with yesod webdriverYesodSpec,+ webdriverYesodSpecWithMiddlewares, -- * Implementing webdriver tests with yesod openRoute,@@ -41,6 +42,7 @@ import Network.HTTP.Client as HTTP import qualified Network.HTTP.Types as HTTP import Network.URI+import Network.Wai (Middleware) import Test.Syd import Test.Syd.Wai import Test.Syd.Webdriver@@ -50,7 +52,7 @@ -- | Run webdriver tests given a 'SetupFunc' for your app. webdriverYesodSpec ::- Yesod.YesodDispatch app =>+ (Yesod.YesodDispatch app) => (HTTP.Manager -> SetupFunc app) -> WebdriverSpec app -> Spec@@ -59,16 +61,28 @@ YesodClient {..} <- yesodClientSetupFunc man site pure (yesodClientSiteURI, yesodClientSite) +-- | Run webdriver tests given a 'SetupFunc' for your app.+webdriverYesodSpecWithMiddlewares ::+ (Yesod.YesodDispatch app) =>+ (HTTP.Manager -> SetupFunc app) ->+ [Middleware] ->+ WebdriverSpec app ->+ Spec+webdriverYesodSpecWithMiddlewares appSetupFunc middlewares = webdriverSpec $ \man -> do+ site <- appSetupFunc man+ YesodClient {..} <- yesodClientSetupFuncWithMiddlewares middlewares man site+ pure (yesodClientSiteURI, yesodClientSite)+ -- | Open a given yesod 'Route' openRoute ::- Yesod.RenderRoute app =>+ (Yesod.RenderRoute app) => Route app -> WebdriverTestM app () openRoute route = openRouteWithParams route [] -- | Open a given yesod 'Route' with parameters openRouteWithParams ::- Yesod.RenderRoute app =>+ (Yesod.RenderRoute app) => Route app -> [(Text, Text)] -> WebdriverTestM app ()@@ -92,7 +106,7 @@ -- | Get the current 'Route' getCurrentRoute ::- Yesod.ParseRoute app =>+ (Yesod.ParseRoute app) => WebdriverTestM app (Route app) getCurrentRoute = do currentUrl <- getCurrentURL@@ -126,21 +140,21 @@ -- | Get the link text for a given I18N message. -- -- This will only work if the language hasn't been set.-getLinkTextI :: Yesod.RenderMessage app message => message -> WebdriverTestM app Text+getLinkTextI :: (Yesod.RenderMessage app message) => message -> WebdriverTestM app Text getLinkTextI message = do y <- asks webdriverTestEnvApp pure $ Yesod.renderMessage y [] message -- | Find an 'Element', 'ByLinkText' the text obtained by 'getLinkTextI'-findElemByLinkTextI :: Yesod.RenderMessage app message => message -> WebdriverTestM app Element+findElemByLinkTextI :: (Yesod.RenderMessage app message) => message -> WebdriverTestM app Element findElemByLinkTextI message = getLinkTextI message >>= findElem . ByLinkText -- | Find an 'Element', 'ByPartialLinkText' the text obtained by 'getLinkTextI'-findElemByPartialLinkTextI :: Yesod.RenderMessage app message => message -> WebdriverTestM app Element+findElemByPartialLinkTextI :: (Yesod.RenderMessage app message) => message -> WebdriverTestM app Element findElemByPartialLinkTextI message = getLinkTextI message >>= findElem . ByPartialLinkText -- | Find an 'Element', 'ByLinkText' the text obtained by 'getLinkTextI'-findElemByButtonTextI :: Yesod.RenderMessage app message => message -> WebdriverTestM app Element+findElemByButtonTextI :: (Yesod.RenderMessage app message) => message -> WebdriverTestM app Element findElemByButtonTextI message = do t <- getLinkTextI message findElem $ ByXPath $ mconcat ["//button[normalize-space()=\"", t, "\"]"]
sydtest-webdriver-yesod.cabal view
@@ -1,11 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.34.7.+-- This file has been generated from package.yaml by hpack version 0.37.0. -- -- see: https://github.com/sol/hpack name: sydtest-webdriver-yesod-version: 0.0.0.1+version: 0.0.1.0 synopsis: A webdriver+yesod companion library for sydtest category: Testing author: Tom Sydney Kerckhove@@ -36,6 +36,7 @@ , sydtest-webdriver , sydtest-yesod , text+ , wai , webdriver , yesod default-language: Haskell2010