diff --git a/stack.yaml b/stack.yaml index 7b07350..024d473 100644 --- a/stack.yaml +++ b/stack.yaml @@ -10,7 +10,7 @@ # resolver: # name: custom-snapshot # location: "./custom-snapshot.yaml" -resolver: lts-5.16 +resolver: lts-7.18 # User packages to be built. # 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 # (e.g., acme-missiles-0.3) 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 flags: {} diff --git a/test/Servant/EkgSpec.hs b/test/Servant/EkgSpec.hs index c7b214d..bf38c8a 100644 --- a/test/Servant/EkgSpec.hs +++ b/test/Servant/EkgSpec.hs @@ -18,7 +18,7 @@ import Data.Proxy import qualified Data.HashMap.Strict as H import Data.Text import GHC.Generics -import Network.HTTP.Client (defaultManagerSettings, newManager) +import Network.HTTP.Client (defaultManagerSettings, newManager, Manager) import Network.Wai import Network.Wai.Handler.Warp import Servant @@ -36,20 +36,30 @@ import Servant.Ekg spec :: Spec spec = describe "servant-ekg" $ do - let getEp :<|> _postEp :<|> _deleteEp = client testApi + let getEp :<|> postEp :<|> deleteEp = client testApi it "collects number of request" $ do withApp $ \port mvar -> do mgr <- newManager defaultManagerSettings + let runFn :: (Manager -> BaseUrl -> ExceptT e m a) -> m (Either e a) #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 - _result <- runExceptT $ getEp "name" Nothing mgr (BaseUrl Http "localhost" port "") + runFn fn = runExceptT $ fn mgr (BaseUrl Http "localhost" port "") #endif + _ <- runFn $ getEp "name" Nothing + _ <- runFn $ postEp (Greet "hi") + _ <- runFn $ deleteEp "blah" m <- readMVar mvar case H.lookup "hello.:name.GET" m of Nothing -> fail "Expected some value" 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 let _typeLevelTest = monitorEndpoints comprehensiveAPI undefined undefined undefined