module Test.Cargohold.Metrics where
import Data.String.Conversions
import Testlib.Prelude
testPrometheusMetrics :: (HasCallStack) => App ()
testPrometheusMetrics :: HasCallStack => App ()
testPrometheusMetrics = do
Request
req <- Domain -> Service -> Versioned -> String -> App Request
forall user.
(HasCallStack, MakesValue user) =>
user -> Service -> Versioned -> String -> App Request
baseRequest Domain
OwnDomain Service
Cargohold Versioned
Unversioned String
"i/metrics"
Response
resp <- String -> Request -> App Response
submit String
"GET" Request
req
Response -> (Response -> App ()) -> App ()
forall a. HasCallStack => Response -> (Response -> App a) -> App a
withResponse Response
resp ((Response -> App ()) -> App ()) -> (Response -> App ()) -> App ()
forall a b. (a -> b) -> a -> b
$ \Response
r -> do
Response
r.status Int -> Int -> App ()
forall a. (MakesValue a, HasCallStack) => a -> Int -> App ()
`shouldMatchInt` Int
200
ByteString -> String
forall a b. ConvertibleStrings a b => a -> b
cs Response
r.body HasCallStack => String -> String -> App ()
String -> String -> App ()
`shouldContainString` String
"TYPE http_request_duration_seconds histogram"