git.iko.soy/typeable/openapi3
on master help sign in
add Test for ParamSchema
fbf7723anneloreegger
stack.yaml+2−1
@@ -1,4 +1,4 @@
1−resolver: lts-12.10
1+resolver: lts-13.23
2packages:
2packages:
3- '.'
3- '.'
4extra-deps:
4extra-deps:
@@ -6,3 +6,4 @@ extra-deps:
6- base-compat-batteries-0.10.4
6- base-compat-batteries-0.10.4
7- contravariant-1.5
7- contravariant-1.5
8- insert-ordered-containers-0.2.2
8- insert-ordered-containers-0.2.2
9+#- base-compat-0.10.4
test/Data/Swagger/ParamSchemaSpec.hs+6−1
@@ -3,9 +3,10 @@
3{-# LANGUAGE ScopedTypeVariables #-}
3{-# LANGUAGE ScopedTypeVariables #-}
4{-# LANGUAGE TemplateHaskell #-}
4{-# LANGUAGE TemplateHaskell #-}
5{-# LANGUAGE QuasiQuotes #-}
5{-# LANGUAGE QuasiQuotes #-}
6+{-# LANGUAGE OverloadedStrings #-}
6module Data.Swagger.ParamSchemaSpec where
7module Data.Swagger.ParamSchemaSpec where
7
8
8−import Data.Aeson (Value)
9+import Data.Aeson
9import Data.Aeson.QQ.Simple
10import Data.Aeson.QQ.Simple
10import Data.Char
11import Data.Char
11import Data.Proxy
12import Data.Proxy
@@ -17,6 +18,9 @@ import Data.Swagger.Internal (SwaggerKind(..))
17import Data.Swagger.CommonTestTypes
18import Data.Swagger.CommonTestTypes
18import SpecCommon
19import SpecCommon
19import Test.Hspec
20import Test.Hspec
21+import Data.Time.LocalTime
22+
23+import qualified Data.HashMap.Strict as HM
20
24
21checkToParamSchema :: ToParamSchema a => Proxy a -> Value -> Spec
25checkToParamSchema :: ToParamSchema a => Proxy a -> Value -> Spec
22checkToParamSchema proxy js = (toParamSchema proxy :: ParamSchema ('SwaggerKindNormal Param)) <=> js
26checkToParamSchema proxy js = (toParamSchema proxy :: ParamSchema ('SwaggerKindNormal Param)) <=> js
@@ -30,6 +34,7 @@ spec = do
30 context "Unary records" $ do
34 context "Unary records" $ do
31 context "Email (unary record)" $ checkToParamSchema (Proxy :: Proxy Email) emailSchemaJSON
35 context "Email (unary record)" $ checkToParamSchema (Proxy :: Proxy Email) emailSchemaJSON
32 context "UserId (non-record newtype)" $ checkToParamSchema (Proxy :: Proxy UserId) userIdSchemaJSON
36 context "UserId (non-record newtype)" $ checkToParamSchema (Proxy :: Proxy UserId) userIdSchemaJSON
37+ context "TimeOfDay" $ checkToParamSchema (Proxy :: Proxy TimeOfDay) (Object (HM.fromList [("format",String "hh:MM:ss"),("type",String "string")]))
33
38
34main :: IO ()
39main :: IO ()
35main = hspec spec
40main = hspec spec