wai-handler-hal-0.3.0.0: test/Network/Wai/Handler/HalTest.hs
{-# LANGUAGE ScopedTypeVariables #-}
module Network.Wai.Handler.HalTest where
import AWS.Lambda.Events.ApiGateway.ProxyRequest
import Data.Aeson (eitherDecodeFileStrict')
import qualified Data.Text as T
import qualified Data.Text.Lazy.Encoding as TL
import Data.Void (Void)
import Network.Wai.Handler.Hal
import Test.Tasty
import Test.Tasty.Golden
import Test.Tasty.HUnit (assertEqual, testCase)
import Text.Pretty.Simple
test_ConvertProxyRequest :: TestTree
test_ConvertProxyRequest =
goldenVsString "API Gateway Proxy Request" "test/golden/WaiRequest.txt" $ do
proxyRequest :: ProxyRequest Void <-
eitherDecodeFileStrict' "test/data/ProxyRequest.json"
>>= either fail pure
waiRequest <- toWaiRequest defaultOptions proxyRequest
pure . TL.encodeUtf8 $ pShowNoColor waiRequest
test_DefaultBinaryMimeTypes :: TestTree
test_DefaultBinaryMimeTypes = testCase "default binary MIME types" $ do
assertBinary False "text/plain"
assertBinary False "text/html"
assertBinary False "application/json"
assertBinary False "application/xml"
assertBinary False "application/vnd.api+json"
assertBinary False "application/vnd.api+xml"
assertBinary False "image/svg+xml"
assertBinary True "application/octet-stream"
assertBinary True "audio/vorbis"
assertBinary True "image/png"
where
assertBinary expected mime =
assertEqual
mime
(binaryMimeType defaultOptions (T.pack mime))
expected