Skip to content

Commit 07d7609

Browse files
committed
Add missing HasCallStack
As far as I could tell, all of these functions call failure, or call things that call failure.
1 parent 24acd4e commit 07d7609

1 file changed

Lines changed: 15 additions & 12 deletions

File tree

yesod-test/Yesod/Test.hs

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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
518519
withResponse = withResponse' yedResponse []
519520

520521
-- | Use HXT to parse a value from an HTML tag.
@@ -523,7 +524,8 @@ parseHTML :: HtmlLBS -> Cursor
523524
parseHTML 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]
537539
htmlQuery = 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 ()
807809
printMatches 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
867869
genericNameFromLabel 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 ()
11391141
addToken_ 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 ()
11531155
addToken = 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 ()
11661168
addTokenFromCookie = 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 ()
11841187
addTokenFromCookieNamedToHeaderNamed 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
12051208
getRequestCookies = 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 ()
13671370
clickOn 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

Comments
 (0)