35 lines
1.2 KiB
Haskell
35 lines
1.2 KiB
Haskell
module Feature.HttpHeaderSpec where
|
|
|
|
import Network.HTTP.Types
|
|
import Test.Hspec
|
|
import Test.Hspec.Wai
|
|
|
|
import PostgREST.Config (AppConfig (..))
|
|
import PostgREST.SchemaCache.Identifiers (QualifiedIdentifier (..))
|
|
|
|
import Protolude
|
|
import SpecHelper
|
|
|
|
spec :: SpecWithConfig
|
|
spec withConfig = do
|
|
withConfig baseCfg { configDbPreRequest = Just $ QualifiedIdentifier "test" "custom_vary_hdr" } $
|
|
describe "Test HTTP Custom Header" $
|
|
it "Test default Vary header value is overridden in pre-request database function" $
|
|
request methodGet "/projects" []
|
|
""
|
|
`shouldRespondWith`
|
|
ResponseMatcher
|
|
{ matchStatus = 200
|
|
, matchBody = MatchBody (\_ _ -> Nothing) -- match any body
|
|
, matchHeaders = [ "Vary" <:> "X-Test-Accept" ] }
|
|
|
|
withConfig baseCfg $ describe "Test HTTP Default Header" $
|
|
it "Test default Vary header value matches default one" $
|
|
request methodGet "/projects" []
|
|
""
|
|
`shouldRespondWith`
|
|
ResponseMatcher
|
|
{ matchStatus = 200
|
|
, matchBody = MatchBody (\_ _ -> Nothing) -- match any body
|
|
, matchHeaders = [ "Vary" <:> "Accept, Prefer, Range" ] }
|