@@ -1,12 +1,42 @@
1+{-# LANGUAGE DataKinds #-}
2+{-# LANGUAGE DeriveAnyClass #-}
3+{-# LANGUAGE DeriveGeneric #-}
4+{-# LANGUAGE OverloadedStrings #-}
5+{-# LANGUAGE TypeOperators #-}
2module Servant.MockSpec where
7module Servant.MockSpec where
9+import Data.Aeson as Aeson
13+import Test.Hspec hiding (pending)
4−import Test.Hspec
14+import Test.Hspec.Wai
15+import Test.QuickCheck
6import Servant.API.Internal.Test.ComprehensiveAPI
18import Servant.API.Internal.Test.ComprehensiveAPI
7import Servant.Mock
19import Servant.Mock
9_ = mock comprehensiveAPI
21_ = mock comprehensiveAPI
26+ deriving (Generic, ToJSON)
28+instance Arbitrary Body where
29+ arbitrary = return ArbitraryBody
11spec :: Spec
31spec :: Spec
12−spec = return ()
32+spec = do
35+ let api :: Proxy (Get '[JSON] Body)
37+ app = serve api (mock api)
38+ with (return app) $ do
39+ it "serves arbitrary response bodies" $ do
40+ get "/" `shouldRespondWith` 200{
41+ matchBody = Just $ Aeson.encode ArbitraryBody