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" ] }