More tests

This commit is contained in:
Julian K. Arni 2017-01-30 10:46:54 -08:00
parent 787bfb5c1b
commit c48a9aa851
2 changed files with 15 additions and 10 deletions

View file

@ -10,7 +10,7 @@
# resolver: # resolver:
# name: custom-snapshot # name: custom-snapshot
# location: "./custom-snapshot.yaml" # location: "./custom-snapshot.yaml"
resolver: lts-5.16 resolver: lts-7.18
# User packages to be built. # User packages to be built.
# Various formats can be used as shown in the example below. # Various formats can be used as shown in the example below.
@ -35,11 +35,6 @@ packages:
# Dependency packages to be pulled from upstream that are not in the resolver # Dependency packages to be pulled from upstream that are not in the resolver
# (e.g., acme-missiles-0.3) # (e.g., acme-missiles-0.3)
extra-deps: extra-deps:
- servant-0.7.1
- servant-server-0.7.1
- servant-client-0.7.1
- warp-3.2.6
- http2-1.6.0
# Override default flag values for local packages and extra-deps # Override default flag values for local packages and extra-deps
flags: {} flags: {}

View file

@ -18,7 +18,7 @@ import Data.Proxy
import qualified Data.HashMap.Strict as H import qualified Data.HashMap.Strict as H
import Data.Text import Data.Text
import GHC.Generics import GHC.Generics
import Network.HTTP.Client (defaultManagerSettings, newManager) import Network.HTTP.Client (defaultManagerSettings, newManager, Manager)
import Network.Wai import Network.Wai
import Network.Wai.Handler.Warp import Network.Wai.Handler.Warp
import Servant import Servant
@ -36,20 +36,30 @@ import Servant.Ekg
spec :: Spec spec :: Spec
spec = describe "servant-ekg" $ do spec = describe "servant-ekg" $ do
let getEp :<|> _postEp :<|> _deleteEp = client testApi let getEp :<|> postEp :<|> deleteEp = client testApi
it "collects number of request" $ do it "collects number of request" $ do
withApp $ \port mvar -> do withApp $ \port mvar -> do
mgr <- newManager defaultManagerSettings mgr <- newManager defaultManagerSettings
let runFn :: (Manager -> BaseUrl -> ExceptT e m a) -> m (Either e a)
#if MIN_VERSION_servant(0,9,0) #if MIN_VERSION_servant(0,9,0)
Right _result <- runClientM (getEp "name" Nothing) (ClientEnv mgr (BaseUrl Http "localhost" port "")) runFn fn = runClientM $ fn mgr (ClientEnv mgr (BaseUrl Http "localhost" port ""))
#else #else
_result <- runExceptT $ getEp "name" Nothing mgr (BaseUrl Http "localhost" port "") runFn fn = runExceptT $ fn mgr (BaseUrl Http "localhost" port "")
#endif #endif
_ <- runFn $ getEp "name" Nothing
_ <- runFn $ postEp (Greet "hi")
_ <- runFn $ deleteEp "blah"
m <- readMVar mvar m <- readMVar mvar
case H.lookup "hello.:name.GET" m of case H.lookup "hello.:name.GET" m of
Nothing -> fail "Expected some value" Nothing -> fail "Expected some value"
Just v -> Counter.read (metersC2XX v) `shouldReturn` 1 Just v -> Counter.read (metersC2XX v) `shouldReturn` 1
case H.lookup "greet.POST" m of
Nothing -> fail "Expected some value"
Just v -> Counter.read (metersC2XX v) `shouldReturn` 1
case H.lookup "greet.:greetid.DELETE" m of
Nothing -> fail "Expected some value"
Just v -> Counter.read (metersC2XX v) `shouldReturn` 1
it "is comprehensive" $ do it "is comprehensive" $ do
let _typeLevelTest = monitorEndpoints comprehensiveAPI undefined undefined undefined let _typeLevelTest = monitorEndpoints comprehensiveAPI undefined undefined undefined