Newer
Older
{-# LANGUAGE OverloadedStrings #-}
module Util.Spec
( wrongMethodNotAllowed
, nonJSONUnsupportedMediaType
, wrongJSONInvalidRequest
) where
import Test.Hspec
( it
)
import Test.Hspec.Wai
( post
, request
, shouldRespondWith
)
import Util.WAI
( postJSON
)
wrongMethodNotAllowed method path =
it "responds to an unsupported method with 405 (Method Not Allowed)" $
request method path [] "" `shouldRespondWith` 405
nonJSONUnsupportedMediaType path =
it "responds to non-JSON Content-Type with 415 (Unsupported Media Type)" $
post path "xxx" `shouldRespondWith` 415
wrongJSONInvalidRequest path json =
it "responds to JSON body representing the wrong data with 400 (Invalid Request)" $
postJSON path json `shouldRespondWith` 400