summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/Language/GraphQL/ClassSpec.hs24
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