packages feed

ziptastic-client-0.3.0.0: test/Spec.hs

{-# LANGUAGE LambdaCase, OverloadedStrings #-}

module Main (main) where

import           Data.ISO3166_CountryCodes (CountryCode(US))
import           Network.HTTP.Client (newManager)
import           Network.HTTP.Client (defaultManagerSettings)
import           Network.HTTP.Client.TLS (tlsManagerSettings)
import           Network.HTTP.Types.Status (unauthorized401)
import           Servant.Client (ServantError(..))
import           Test.Hspec
import           Ziptastic.Client

apiKey :: ApiKey
apiKey = "fake-key"

main :: IO ()
main = do
  insecureManager <- newManager defaultManagerSettings
  secureManager   <- newManager tlsManagerSettings
  hspec $
    describe "http client machinery" $ do
      it "can make requests with secure manager" $ do
        response <- forwardGeocode apiKey secureManager US "48867"
        response `shouldSatisfy` \case
          Left (FailureResponse{responseStatus=status}) -> status == unauthorized401
          _ -> False

      it "can make requests with insecure manager" $ do
        response <- forwardGeocode apiKey insecureManager US "48867"
        response `shouldSatisfy` \case
          Left (FailureResponse{responseStatus=status}) -> status == unauthorized401
          _ -> False