@@ -500,7 +500,8 @@ testClearCookies = do
500500
501501-- Performs a given action using the last response. Use this to create
502502-- response-level assertions
503- withResponse' :: (state -> Maybe SResponse )
503+ withResponse' :: HasCallStack
504+ => (state -> Maybe SResponse )
504505 -> [T. Text ]
505506 -> (SResponse -> SIO state a )
506507 -> SIO state a
@@ -514,7 +515,7 @@ withResponse' getter errTrace f = maybe err f . getter =<< getSIO
514515
515516-- | Performs a given action using the last response. Use this to create
516517-- response-level assertions
517- withResponse :: (SResponse -> YesodExample site a ) -> YesodExample site a
518+ withResponse :: HasCallStack => (SResponse -> YesodExample site a ) -> YesodExample site a
518519withResponse = withResponse' yedResponse []
519520
520521-- | Use HXT to parse a value from an HTML tag.
@@ -523,7 +524,8 @@ parseHTML :: HtmlLBS -> Cursor
523524parseHTML html = fromDocument $ HD. parseLBS html
524525
525526-- | Query the last response using CSS selectors, returns a list of matched fragments
526- htmlQuery' :: (state -> Maybe SResponse )
527+ htmlQuery' :: HasCallStack
528+ => (state -> Maybe SResponse )
527529 -> [T. Text ]
528530 -> Query
529531 -> SIO state [HtmlLBS ]
@@ -533,7 +535,7 @@ htmlQuery' getter errTrace query = withResponse' getter ("Tried to invoke htmlQu
533535 Right matches -> return $ map (encodeUtf8 . TL. pack) matches
534536
535537-- | Query the last response using CSS selectors, returns a list of matched fragments
536- htmlQuery :: Query -> YesodExample site [HtmlLBS ]
538+ htmlQuery :: HasCallStack => Query -> YesodExample site [HtmlLBS ]
537539htmlQuery = htmlQuery' yedResponse []
538540
539541-- | Asserts that the two given values are equal.
@@ -803,7 +805,7 @@ printBody = withResponse $ \ SResponse { simpleBody = b } ->
803805-- > {-# LANGUAGE OverloadedStrings #-}
804806-- > get HomeR
805807-- > printMatches "h1" -- Prints all h1 tags
806- printMatches :: Query -> YesodExample site ()
808+ printMatches :: HasCallStack => Query -> YesodExample site ()
807809printMatches query = do
808810 matches <- htmlQuery query
809811 liftIO $ hPutStrLn stderr $ show matches
@@ -863,7 +865,7 @@ addFile name path mimetype = do
863865
864866-- |
865867-- This looks up the name of a field based on the contents of the label pointing to it.
866- genericNameFromLabel :: (T. Text -> T. Text -> Bool ) -> T. Text -> RequestBuilder site T. Text
868+ genericNameFromLabel :: HasCallStack => (T. Text -> T. Text -> Bool ) -> T. Text -> RequestBuilder site T. Text
867869genericNameFromLabel match label = do
868870 mres <- fmap rbdResponse getSIO
869871 res <-
@@ -1135,7 +1137,7 @@ fileByLabelSuffix = fileByLabelWithMatch T.isSuffixOf
11351137--
11361138-- > request $ do
11371139-- > addToken_ "#formID"
1138- addToken_ :: Query -> RequestBuilder site ()
1140+ addToken_ :: HasCallStack => Query -> RequestBuilder site ()
11391141addToken_ scope = do
11401142 matches <- htmlQuery' rbdResponse [" Tried to get CSRF token with addToken'" ] $ scope <> " input[name=_token][type=hidden][value]"
11411143 case matches of
@@ -1149,7 +1151,7 @@ addToken_ scope = do
11491151--
11501152-- > request $ do
11511153-- > addToken
1152- addToken :: RequestBuilder site ()
1154+ addToken :: HasCallStack => RequestBuilder site ()
11531155addToken = addToken_ " "
11541156
11551157-- | Calls 'addTokenFromCookieNamedToHeaderNamed' with the 'defaultCsrfCookieName' and 'defaultCsrfHeaderName'.
@@ -1162,7 +1164,7 @@ addToken = addToken_ ""
11621164-- > addTokenFromCookie
11631165--
11641166-- Since 1.4.3.2
1165- addTokenFromCookie :: RequestBuilder site ()
1167+ addTokenFromCookie :: HasCallStack => RequestBuilder site ()
11661168addTokenFromCookie = addTokenFromCookieNamedToHeaderNamed defaultCsrfCookieName defaultCsrfHeaderName
11671169
11681170-- | Looks up the CSRF token stored in the cookie with the given name and adds it to the request headers. An error is thrown if the cookie can't be found.
@@ -1178,7 +1180,8 @@ addTokenFromCookie = addTokenFromCookieNamedToHeaderNamed defaultCsrfCookieName
11781180-- > addTokenFromCookieNamedToHeaderNamed "cookieName" (CI "headerName")
11791181--
11801182-- Since 1.4.3.2
1181- addTokenFromCookieNamedToHeaderNamed :: ByteString -- ^ The name of the cookie
1183+ addTokenFromCookieNamedToHeaderNamed :: HasCallStack
1184+ => ByteString -- ^ The name of the cookie
11821185 -> CI ByteString -- ^ The name of the header
11831186 -> RequestBuilder site ()
11841187addTokenFromCookieNamedToHeaderNamed cookieName headerName = do
@@ -1201,7 +1204,7 @@ addTokenFromCookieNamedToHeaderNamed cookieName headerName = do
12011204-- > liftIO $ putStrLn $ "Cookies are: " ++ show cookies
12021205--
12031206-- Since 1.4.3.2
1204- getRequestCookies :: RequestBuilder site Cookies
1207+ getRequestCookies :: HasCallStack => RequestBuilder site Cookies
12051208getRequestCookies = do
12061209 requestBuilderData <- getSIO
12071210 headers <- case simpleHeaders Control.Applicative. <$> rbdResponse requestBuilderData of
@@ -1363,7 +1366,7 @@ setUrl url' = do
13631366-- > clickOn "a#idofthelink"
13641367--
13651368-- @since 1.5.7
1366- clickOn :: Yesod site => Query -> YesodExample site ()
1369+ clickOn :: ( HasCallStack , Yesod site ) => Query -> YesodExample site ()
13671370clickOn query = do
13681371 withResponse' yedResponse [" Tried to invoke clickOn in order to read HTML of a previous response." ] $ \ res ->
13691372 case findAttributeBySelector (simpleBody res) query " href" of
0 commit comments