From a7d42846b56dbe87a68decb57fcc6168155481c2 Mon Sep 17 00:00:00 2001 From: pythonissam Date: Sat, 14 Apr 2018 06:00:45 +0000 Subject: [PATCH 1/4] add performMethod --- yesod-test/Yesod/Test.hs | 16 ++++++++++++++++ yesod-test/test/main.hs | 3 +++ yesod-test/yesod-test.cabal | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/yesod-test/Yesod/Test.hs b/yesod-test/Yesod/Test.hs index 22fed19c..505f645a 100644 --- a/yesod-test/Yesod/Test.hs +++ b/yesod-test/Yesod/Test.hs @@ -54,6 +54,7 @@ module Yesod.Test , get , post , postBody + , performMethod , followRedirect , getLocation , request @@ -929,6 +930,21 @@ get url = request $ do setMethod "GET" setUrl url +-- | Perform a request using a given method to @url@. +-- +-- @since 1.6.3 +-- +-- ==== __Examples__ +-- +-- > performMethod "GET" HomeR +performMethod :: (Yesod site, RedirectUrl site url) + => ByteString + -> url + -> YesodExample site () +performMethod method url = request $ do + setMethod method + setUrl url + -- | Follow a redirect, if the last response was a redirect. -- (We consider a request a redirect if the status is -- 301, 302, 303, 307 or 308, and the Location header is set.) diff --git a/yesod-test/test/main.hs b/yesod-test/test/main.hs index 9fdcf6ae..b0b2ebe6 100644 --- a/yesod-test/test/main.hs +++ b/yesod-test/test/main.hs @@ -124,6 +124,9 @@ main = hspec $ do yit "tests1b" $ do get ("/foo" :: Text) statusIs 404 + yit "tests1c" $ do + performMethod "DELETE" ("/" :: Text) + statusIs 200 ydescribe "tests2" $ do yit "type-safe URLs" $ do get $ LiteAppRoute [] diff --git a/yesod-test/yesod-test.cabal b/yesod-test/yesod-test.cabal index 7ae516a0..ddc5519c 100644 --- a/yesod-test/yesod-test.cabal +++ b/yesod-test/yesod-test.cabal @@ -1,5 +1,5 @@ name: yesod-test -version: 1.6.2 +version: 1.6.3 license: MIT license-file: LICENSE author: Nubis From 7ad28d227c2a8b585d6ce14aefe2494b80b987a7 Mon Sep 17 00:00:00 2001 From: pythonissam Date: Sat, 14 Apr 2018 06:10:59 +0000 Subject: [PATCH 2/4] Update ChangeLog.md --- yesod-test/ChangeLog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/yesod-test/ChangeLog.md b/yesod-test/ChangeLog.md index f613c7d3..3941b750 100644 --- a/yesod-test/ChangeLog.md +++ b/yesod-test/ChangeLog.md @@ -1,3 +1,7 @@ +## 1.6.3 +Add performMethod +[#1502](https://github.com/yesodweb/yesod/pull/1502) + ## 1.6.2 * Add byLabel-related functions like byLabelContain From a9030aa2948e6d7f9663fb28eea1dd8c64263e54 Mon Sep 17 00:00:00 2001 From: pythonissam Date: Sat, 14 Apr 2018 06:46:38 +0000 Subject: [PATCH 3/4] make get and post use performMethod --- yesod-test/Yesod/Test.hs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/yesod-test/Yesod/Test.hs b/yesod-test/Yesod/Test.hs index 505f645a..5ff6855d 100644 --- a/yesod-test/Yesod/Test.hs +++ b/yesod-test/Yesod/Test.hs @@ -895,9 +895,7 @@ getRequestCookies = do post :: (Yesod site, RedirectUrl site url) => url -> YesodExample site () -post url = request $ do - setMethod "POST" - setUrl url +post = performMethod "POST" -- | Perform a POST request to @url@ with the given body. -- @@ -926,9 +924,7 @@ postBody url body = request $ do get :: (Yesod site, RedirectUrl site url) => url -> YesodExample site () -get url = request $ do - setMethod "GET" - setUrl url +get = performMethod "GET" -- | Perform a request using a given method to @url@. -- From 860ef4127a51d082cab349969506271896173b16 Mon Sep 17 00:00:00 2001 From: pythonissam Date: Sat, 14 Apr 2018 06:47:32 +0000 Subject: [PATCH 4/4] Change the method in the example of performMethod --- yesod-test/Yesod/Test.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yesod-test/Yesod/Test.hs b/yesod-test/Yesod/Test.hs index 5ff6855d..10f15f0a 100644 --- a/yesod-test/Yesod/Test.hs +++ b/yesod-test/Yesod/Test.hs @@ -932,7 +932,7 @@ get = performMethod "GET" -- -- ==== __Examples__ -- --- > performMethod "GET" HomeR +-- > performMethod "DELETE" HomeR performMethod :: (Yesod site, RedirectUrl site url) => ByteString -> url