servant-mock 0.8.3 → 0.8.4
raw patch · 3 files changed
+26/−26 lines, 3 filesdep +base-compatdep ~QuickCheckdep ~basedep ~http-typesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: base-compat
Dependency ranges changed: QuickCheck, base, http-types, servant, servant-server
API changes (from Hackage documentation)
- Servant.Mock: instance forall k (api :: k) (context :: [*]) (d :: GHC.Types.Symbol). Servant.Mock.HasMock api context => Servant.Mock.HasMock (Servant.API.Description.Description d Servant.API.Sub.:> api) context
- Servant.Mock: instance forall k (api :: k) (context :: [*]) (d :: GHC.Types.Symbol). Servant.Mock.HasMock api context => Servant.Mock.HasMock (Servant.API.Description.Summary d Servant.API.Sub.:> api) context
- Servant.Mock: instance forall k (ctypes :: [GHC.Types.*]) a (rest :: k) (context :: [*]). (Servant.API.ContentTypes.AllCTUnrender ctypes a, Servant.Mock.HasMock rest context) => Servant.Mock.HasMock (Servant.API.ReqBody.ReqBody ctypes a Servant.API.Sub.:> rest) context
- Servant.Mock: instance forall k (h :: GHC.Types.Symbol) a (rest :: k) (context :: [*]). (GHC.TypeLits.KnownSymbol h, Web.Internal.HttpApiData.FromHttpApiData a, Servant.Mock.HasMock rest context) => Servant.Mock.HasMock (Servant.API.Header.Header h a Servant.API.Sub.:> rest) context
- Servant.Mock: instance forall k (path :: GHC.Types.Symbol) (rest :: k) (context :: [*]). (GHC.TypeLits.KnownSymbol path, Servant.Mock.HasMock rest context) => Servant.Mock.HasMock (path Servant.API.Sub.:> rest) context
- Servant.Mock: instance forall k (rest :: k) (context :: [*]). Servant.Mock.HasMock rest context => Servant.Mock.HasMock (Data.Vault.Lazy.Vault Servant.API.Sub.:> rest) context
- Servant.Mock: instance forall k (rest :: k) (context :: [*]). Servant.Mock.HasMock rest context => Servant.Mock.HasMock (Network.HTTP.Types.Version.HttpVersion Servant.API.Sub.:> rest) context
- Servant.Mock: instance forall k (rest :: k) (context :: [*]). Servant.Mock.HasMock rest context => Servant.Mock.HasMock (Servant.API.IsSecure.IsSecure Servant.API.Sub.:> rest) context
- Servant.Mock: instance forall k (rest :: k) (context :: [*]). Servant.Mock.HasMock rest context => Servant.Mock.HasMock (Servant.API.RemoteHost.RemoteHost Servant.API.Sub.:> rest) context
- Servant.Mock: instance forall k (s :: GHC.Types.Symbol) (rest :: k) (context :: [*]). (GHC.TypeLits.KnownSymbol s, Servant.Mock.HasMock rest context) => Servant.Mock.HasMock (Servant.API.QueryParam.QueryFlag s Servant.API.Sub.:> rest) context
- Servant.Mock: instance forall k (s :: GHC.Types.Symbol) a (rest :: k) (context :: [*]). (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.FromHttpApiData a, Servant.Mock.HasMock rest context) => Servant.Mock.HasMock (Servant.API.Capture.Capture s a Servant.API.Sub.:> rest) context
- Servant.Mock: instance forall k (s :: GHC.Types.Symbol) a (rest :: k) (context :: [*]). (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.FromHttpApiData a, Servant.Mock.HasMock rest context) => Servant.Mock.HasMock (Servant.API.Capture.CaptureAll s a Servant.API.Sub.:> rest) context
- Servant.Mock: instance forall k (s :: GHC.Types.Symbol) a (rest :: k) (context :: [*]). (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.FromHttpApiData a, Servant.Mock.HasMock rest context) => Servant.Mock.HasMock (Servant.API.QueryParam.QueryParam s a Servant.API.Sub.:> rest) context
- Servant.Mock: instance forall k (s :: GHC.Types.Symbol) a (rest :: k) (context :: [*]). (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.FromHttpApiData a, Servant.Mock.HasMock rest context) => Servant.Mock.HasMock (Servant.API.QueryParam.QueryParams s a Servant.API.Sub.:> rest) context
- Servant.Mock: instance forall k1 (headerTypes :: [*]) a (status :: GHC.Types.Nat) (method :: k1) (ctypes :: [GHC.Types.*]) (context :: [*]). (Servant.API.ResponseHeaders.GetHeaders (Servant.API.ResponseHeaders.Headers headerTypes a), Test.QuickCheck.Arbitrary.Arbitrary (Servant.API.ResponseHeaders.HList headerTypes), Test.QuickCheck.Arbitrary.Arbitrary a, GHC.TypeLits.KnownNat status, Servant.API.Verbs.ReflectMethod method, Servant.API.ContentTypes.AllCTRender ctypes a) => Servant.Mock.HasMock (Servant.API.Verbs.Verb method status ctypes (Servant.API.ResponseHeaders.Headers headerTypes a)) context
- Servant.Mock: instance forall k1 a (status :: GHC.Types.Nat) (method :: k1) (ctypes :: [GHC.Types.*]) (context :: [*]). (Test.QuickCheck.Arbitrary.Arbitrary a, GHC.TypeLits.KnownNat status, Servant.API.Verbs.ReflectMethod method, Servant.API.ContentTypes.AllCTRender ctypes a) => Servant.Mock.HasMock (Servant.API.Verbs.Verb method status ctypes a) context
+ Servant.Mock: instance (GHC.TypeLits.KnownSymbol h, Web.Internal.HttpApiData.FromHttpApiData a, Servant.Mock.HasMock rest context, Data.Singletons.Bool.SBoolI (Servant.API.Modifiers.FoldRequired mods), Data.Singletons.Bool.SBoolI (Servant.API.Modifiers.FoldLenient mods)) => Servant.Mock.HasMock (Servant.API.Header.Header' mods h a Servant.API.Sub.:> rest) context
+ Servant.Mock: instance (GHC.TypeLits.KnownSymbol path, Servant.Mock.HasMock rest context) => Servant.Mock.HasMock (path Servant.API.Sub.:> rest) context
+ Servant.Mock: instance (GHC.TypeLits.KnownSymbol s, Servant.Mock.HasMock rest context) => Servant.Mock.HasMock (Servant.API.QueryParam.QueryFlag s Servant.API.Sub.:> rest) context
+ Servant.Mock: instance (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.FromHttpApiData a, Servant.Mock.HasMock rest context) => Servant.Mock.HasMock (Servant.API.Capture.Capture' mods s a Servant.API.Sub.:> rest) context
+ Servant.Mock: instance (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.FromHttpApiData a, Servant.Mock.HasMock rest context) => Servant.Mock.HasMock (Servant.API.Capture.CaptureAll s a Servant.API.Sub.:> rest) context
+ Servant.Mock: instance (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.FromHttpApiData a, Servant.Mock.HasMock rest context) => Servant.Mock.HasMock (Servant.API.QueryParam.QueryParams s a Servant.API.Sub.:> rest) context
+ Servant.Mock: instance (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.FromHttpApiData a, Servant.Mock.HasMock rest context, Data.Singletons.Bool.SBoolI (Servant.API.Modifiers.FoldRequired mods), Data.Singletons.Bool.SBoolI (Servant.API.Modifiers.FoldLenient mods)) => Servant.Mock.HasMock (Servant.API.QueryParam.QueryParam' mods s a Servant.API.Sub.:> rest) context
+ Servant.Mock: instance (Servant.API.ContentTypes.AllCTUnrender ctypes a, Servant.Mock.HasMock rest context, Data.Singletons.Bool.SBoolI (Servant.API.Modifiers.FoldLenient mods)) => Servant.Mock.HasMock (Servant.API.ReqBody.ReqBody' mods ctypes a Servant.API.Sub.:> rest) context
+ Servant.Mock: instance Servant.Mock.HasMock api context => Servant.Mock.HasMock (Servant.API.Description.Description d Servant.API.Sub.:> api) context
+ Servant.Mock: instance Servant.Mock.HasMock api context => Servant.Mock.HasMock (Servant.API.Description.Summary d Servant.API.Sub.:> api) context
+ Servant.Mock: instance Servant.Mock.HasMock rest context => Servant.Mock.HasMock (Data.Vault.Lazy.Vault Servant.API.Sub.:> rest) context
+ Servant.Mock: instance Servant.Mock.HasMock rest context => Servant.Mock.HasMock (Network.HTTP.Types.Version.HttpVersion Servant.API.Sub.:> rest) context
+ Servant.Mock: instance Servant.Mock.HasMock rest context => Servant.Mock.HasMock (Servant.API.IsSecure.IsSecure Servant.API.Sub.:> rest) context
+ Servant.Mock: instance Servant.Mock.HasMock rest context => Servant.Mock.HasMock (Servant.API.RemoteHost.RemoteHost Servant.API.Sub.:> rest) context
+ Servant.Mock: instance forall k1 (headerTypes :: [*]) a (status :: GHC.Types.Nat) (method :: k1) (ctypes :: [*]) (context :: [*]). (Servant.API.ResponseHeaders.GetHeaders (Servant.API.ResponseHeaders.Headers headerTypes a), Test.QuickCheck.Arbitrary.Arbitrary (Servant.API.ResponseHeaders.HList headerTypes), Test.QuickCheck.Arbitrary.Arbitrary a, GHC.TypeNats.KnownNat status, Servant.API.Verbs.ReflectMethod method, Servant.API.ContentTypes.AllCTRender ctypes a) => Servant.Mock.HasMock (Servant.API.Verbs.Verb method status ctypes (Servant.API.ResponseHeaders.Headers headerTypes a)) context
+ Servant.Mock: instance forall k1 a (status :: GHC.Types.Nat) (method :: k1) (ctypes :: [*]) (context :: [*]). (Test.QuickCheck.Arbitrary.Arbitrary a, GHC.TypeNats.KnownNat status, Servant.API.Verbs.ReflectMethod method, Servant.API.ContentTypes.AllCTRender ctypes a) => Servant.Mock.HasMock (Servant.API.Verbs.Verb method status ctypes a) context
Files
- CHANGELOG.md +6/−1
- servant-mock.cabal +8/−7
- src/Servant/Mock.hs +12/−18
CHANGELOG.md view
@@ -1,4 +1,9 @@-0.3.3+0.8.4+-----++- Support for servant-0.13++0.8.3 ----- - Support for servant-0.12
servant-mock.cabal view
@@ -1,5 +1,5 @@ name: servant-mock-version: 0.8.3+version: 0.8.4 synopsis: Derive a mock server for free from your servant API types description: Derive a mock server for free from your servant API types@@ -17,7 +17,7 @@ cabal-version: >=1.10 bug-reports: http://github.com/haskell-servant/servant-mock/issues tested-with:- GHC==8.2.1,+ GHC==8.2.2, GHC==8.0.2, GHC==7.10.3, GHC==7.8.4@@ -36,12 +36,13 @@ Servant.Mock build-depends: base >=4.7 && <5,+ base-compat >=0.9.3 && <0.10, bytestring >=0.10.4 && <0.11,- http-types >=0.8 && <0.11,- servant >=0.8 && <0.13,- servant-server >=0.8 && <0.13,+ http-types >=0.8 && <0.13,+ servant >=0.13 && <0.14,+ servant-server >=0.13 && <0.14, transformers >=0.3 && <0.6,- QuickCheck >=2.7 && <2.11,+ QuickCheck >=2.7 && <2.12, wai >=3.0 && <3.3 hs-source-dirs: src default-language: Haskell2010@@ -79,7 +80,7 @@ bytestring-conversion, base, hspec,- hspec-wai >=0.8 && <0.9,+ hspec-wai >=0.8 && <0.10, QuickCheck, servant, servant-server,
src/Servant/Mock.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-orphans #-} #include "overlapping-compat.h"@@ -56,9 +57,9 @@ -- @ module Servant.Mock ( HasMock(..) ) where -#if !MIN_VERSION_base(4,8,0)-import Control.Applicative-#endif+import Prelude ()+import Prelude.Compat+ import Control.Monad.IO.Class import Data.ByteString.Lazy.Char8 (pack) import Data.Proxy@@ -67,6 +68,7 @@ import Network.Wai import Servant import Servant.API.ContentTypes+import Servant.API.Modifiers import Test.QuickCheck.Arbitrary (Arbitrary (..), vector) import Test.QuickCheck.Gen (Gen, generate) @@ -112,15 +114,14 @@ instance (KnownSymbol path, HasMock rest context) => HasMock (path :> rest) context where mock _ = mock (Proxy :: Proxy rest) -instance (KnownSymbol s, FromHttpApiData a, HasMock rest context) => HasMock (Capture s a :> rest) context where+instance (KnownSymbol s, FromHttpApiData a, HasMock rest context) => HasMock (Capture' mods s a :> rest) context where mock _ context = \_ -> mock (Proxy :: Proxy rest) context -#if MIN_VERSION_servant(0,8,1) instance (KnownSymbol s, FromHttpApiData a, HasMock rest context) => HasMock (CaptureAll s a :> rest) context where mock _ context = \_ -> mock (Proxy :: Proxy rest) context-#endif -instance (AllCTUnrender ctypes a, HasMock rest context) => HasMock (ReqBody ctypes a :> rest) context where+instance (AllCTUnrender ctypes a, HasMock rest context, SBoolI (FoldLenient mods))+ => HasMock (ReqBody' mods ctypes a :> rest) context where mock _ context = \_ -> mock (Proxy :: Proxy rest) context instance HasMock rest context => HasMock (RemoteHost :> rest) context where@@ -135,8 +136,8 @@ instance HasMock rest context => HasMock (HttpVersion :> rest) context where mock _ context = \_ -> mock (Proxy :: Proxy rest) context -instance (KnownSymbol s, FromHttpApiData a, HasMock rest context)- => HasMock (QueryParam s a :> rest) context where+instance (KnownSymbol s, FromHttpApiData a, HasMock rest context, SBoolI (FoldRequired mods), SBoolI (FoldLenient mods))+ => HasMock (QueryParam' mods s a :> rest) context where mock _ context = \_ -> mock (Proxy :: Proxy rest) context instance (KnownSymbol s, FromHttpApiData a, HasMock rest context)@@ -146,7 +147,8 @@ instance (KnownSymbol s, HasMock rest context) => HasMock (QueryFlag s :> rest) context where mock _ context = \_ -> mock (Proxy :: Proxy rest) context -instance (KnownSymbol h, FromHttpApiData a, HasMock rest context) => HasMock (Header h a :> rest) context where+instance (KnownSymbol h, FromHttpApiData a, HasMock rest context, SBoolI (FoldRequired mods), SBoolI (FoldLenient mods))+ => HasMock (Header' mods h a :> rest) context where mock _ context = \_ -> mock (Proxy :: Proxy rest) context instance (Arbitrary a, KnownNat status, ReflectMethod method, AllCTRender ctypes a)@@ -160,28 +162,20 @@ mock _ _ = mockArbitrary instance HasMock Raw context where-#if MIN_VERSION_servant(0,11,0) mock _ _ = Tagged $ \_req respond -> do-#else- mock _ _ = \_req respond -> do-#endif bdy <- genBody respond $ responseLBS status200 [] bdy where genBody = pack <$> generate (vector 100 :: Gen [Char]) -#if MIN_VERSION_servant(0,11,0) instance HasMock EmptyAPI context where mock _ _ = emptyServer-#endif -#if MIN_VERSION_servant(0,12,0) instance HasMock api context => HasMock (Summary d :> api) context where mock _ context = mock (Proxy :: Proxy api) context instance HasMock api context => HasMock (Description d :> api) context where mock _ context = mock (Proxy :: Proxy api) context-#endif instance (HasContextEntry context (NamedContext name subContext), HasMock rest subContext) => HasMock (WithNamedContext name subContext rest) context where