purescript-httpurple/Test/HTTPure/ResponseSpec.purs

39 lines
1.3 KiB
Haskell
Raw Normal View History

module HTTPure.ResponseSpec where
import Prelude (bind, discard, pure, ($))
2017-07-10 10:17:13 +00:00
import Control.Monad.Eff.Class as EffClass
import Data.StrMap as StrMap
2017-07-10 10:17:13 +00:00
import Test.Spec as Spec
import Test.Spec.Assertions as Assertions
2017-07-10 10:17:13 +00:00
import HTTPure.Response as Response
import HTTPure.SpecHelpers as SpecHelpers
sendSpec :: SpecHelpers.Test
sendSpec = Spec.describe "send" do
Spec.describe "with an OK" do
Spec.it "writes the headers" do
header <- EffClass.liftEff do
resp <- SpecHelpers.mockResponse
Response.send resp $ Response.OK (StrMap.singleton "X-Test" "test") ""
pure $ SpecHelpers.getResponseHeader "X-Test" resp
header `Assertions.shouldEqual` "test"
Spec.it "writes the status" do
status <- EffClass.liftEff do
resp <- SpecHelpers.mockResponse
Response.send resp $ Response.OK StrMap.empty ""
pure $ SpecHelpers.getResponseStatus resp
status `Assertions.shouldEqual` 200
Spec.it "writes the body" do
body <- EffClass.liftEff do
resp <- SpecHelpers.mockResponse
Response.send resp $ Response.OK StrMap.empty "test"
pure $ SpecHelpers.getResponseBody resp
body `Assertions.shouldEqual` "test"
2017-07-10 10:17:13 +00:00
responseSpec :: SpecHelpers.Test
responseSpec = Spec.describe "Response" do
sendSpec