@@ -16,7 +16,10 @@
1616{-# LANGUAGE TypeOperators #-}
1717{-# LANGUAGE UndecidableInstances #-}
1818
19−module Roboservant.StateMachine where
19+module Roboservant.StateMachine
20+( prop_sequential
21+, prop_concurrent
22+) where
2023
2124import Control.Monad.Except (runExceptT)
2225import Control.Monad.IO.Class (MonadIO, liftIO)
@@ -223,8 +226,9 @@ callEndpoint staticRoutes =
223226 -- , Ensure (no-500 here)
224227 ]
225228
226−prop_sequential :: ReifiedApi -> Property
227−prop_sequential reifiedApi = do
229+prop_sequential :: forall api. (FlattenServer api, ToReifiedApi (Endpoints api)) => Server api -> Property
230+prop_sequential server = do
231+ let reifiedApi = toReifiedApi (flattenServer @api server) (Proxy @(Endpoints api))
228232 property $ do
229233 let initialState = State mempty
230234 actions <-
@@ -235,8 +239,9 @@ prop_sequential reifiedApi = do
235239 [callEndpoint reifiedApi]
236240 executeSequential initialState actions
237241
238−prop_concurrent :: ReifiedApi -> Property
239−prop_concurrent reifiedApi =
242+prop_concurrent :: forall api. (FlattenServer api, ToReifiedApi (Endpoints api)) => Server api -> Property
243+prop_concurrent server =
244+ let reifiedApi = toReifiedApi (flattenServer @api server) (Proxy @(Endpoints api)) in
240245 let initialState = State mempty
241246 in withTests 1000 . withRetries 10 . property $ do
242247 actions <-