diff options
Diffstat (limited to 'tests/Language')
| -rw-r--r-- | tests/Language/GraphQL/ClassSpec.hs | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/tests/Language/GraphQL/ClassSpec.hs b/tests/Language/GraphQL/ClassSpec.hs index 9e98905..c14ca7b 100644 --- a/tests/Language/GraphQL/ClassSpec.hs +++ b/tests/Language/GraphQL/ClassSpec.hs @@ -12,16 +12,22 @@ import Data.Text (Text) import Data.Time (UTCTime(..)) import Data.Time.Calendar.OrdinalDate (fromOrdinalDate) import qualified Language.GraphQL.Type as Type -import Language.GraphQL.Class (FromGraphQL(..), ToGraphQL(..), deriveToGraphQL) +import Language.GraphQL.Class + ( FromGraphQL(..) + , ToGraphQL(..) + , deriveFromGraphQL + , deriveToGraphQL + ) import Test.Hspec (Spec, describe, it, shouldBe) import qualified Data.HashMap.Strict as HashMap data TwoFieldRecord = TwoFieldRecord { x :: Int , y :: Bool - } + } deriving (Eq, Show) $(deriveToGraphQL ''TwoFieldRecord) +$(deriveFromGraphQL ''TwoFieldRecord) spec :: Spec spec = do @@ -76,7 +82,7 @@ spec = do in actual `shouldBe` expected describe "deriveToGraphQL" $ do - it "derives ToGraphQL for a record" $ do + it "derives ToGraphQL for a record with multiple fields" $ do let expected = Type.Object $ HashMap.fromList [ ("x", Type.Int 1) , ("y", Type.Boolean True) @@ -87,3 +93,15 @@ spec = do , y = True } in toGraphQL given `shouldBe` expected + + describe "deriveFromGraphQL" $ do + it "derives FromGraphQL for a record with multiple fields" $ do + let given = Type.Object $ HashMap.fromList + [ ("x", Type.Int 1) + , ("y", Type.Boolean True) + ] + expected = TwoFieldRecord + { x = 1 + , y = True + } + in fromGraphQL given `shouldBe` Just expected |
