summaryrefslogtreecommitdiff
path: root/tests/Language/GraphQL/AST/Arbitrary.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2024-04-02 21:07:31 +0200
committerEugen Wissner <belka@caraus.de>2024-04-02 22:06:16 +0200
commit6b8346e5278f71fb813bb564dbb40907a37df6e7 (patch)
treebe8f32d488d4e5311de71a2511ac4ee02263aafb /tests/Language/GraphQL/AST/Arbitrary.hs
parent303f84ed417b8f52d597e705c88d13a99dbeb7ca (diff)
downloadgraphql-6b8346e5278f71fb813bb564dbb40907a37df6e7.tar.gz
Update hlint to 3.8
Diffstat (limited to 'tests/Language/GraphQL/AST/Arbitrary.hs')
-rw-r--r--tests/Language/GraphQL/AST/Arbitrary.hs59
1 files changed, 31 insertions, 28 deletions
diff --git a/tests/Language/GraphQL/AST/Arbitrary.hs b/tests/Language/GraphQL/AST/Arbitrary.hs
index 8d0544e..4f74bf3 100644
--- a/tests/Language/GraphQL/AST/Arbitrary.hs
+++ b/tests/Language/GraphQL/AST/Arbitrary.hs
@@ -7,6 +7,7 @@ import Test.QuickCheck.Arbitrary (Arbitrary (arbitrary))
import Test.QuickCheck (oneof, elements, listOf, resize, NonEmptyList (..))
import Test.QuickCheck.Gen (Gen (..))
import Data.Text (Text, pack)
+import Data.Functor ((<&>))
newtype AnyPrintableChar = AnyPrintableChar { getAnyPrintableChar :: Char } deriving (Eq, Show)
@@ -59,34 +60,36 @@ instance Arbitrary a => Arbitrary (AnyObjectField a) where
location' <- getAnyLocation <$> arbitrary
pure $ AnyObjectField $ Doc.ObjectField name' value' location'
-newtype AnyValue = AnyValue { getAnyValue :: Doc.Value } deriving (Eq, Show)
-
-instance Arbitrary AnyValue where
- arbitrary = AnyValue <$> oneof
- [ variableGen
- , Doc.Int <$> arbitrary
- , Doc.Float <$> arbitrary
- , Doc.String <$> (getAnyPrintableText <$> arbitrary)
- , Doc.Boolean <$> arbitrary
- , MkGen $ \_ _ -> Doc.Null
- , Doc.Enum <$> (getAnyName <$> arbitrary)
- , Doc.List <$> listGen
- , Doc.Object <$> objectGen
- ]
- where
- variableGen :: Gen Doc.Value
- variableGen = Doc.Variable <$> (getAnyName <$> arbitrary)
- listGen :: Gen [Doc.Node Doc.Value]
- listGen = (resize 5 . listOf) nodeGen
- nodeGen = do
- node' <- getAnyNode <$> (arbitrary :: Gen (AnyNode AnyValue))
- pure (getAnyValue <$> node')
- objectGen :: Gen [Doc.ObjectField Doc.Value]
- objectGen = resize 1 $ do
- list <- getNonEmpty <$> (arbitrary :: Gen (NonEmptyList (AnyObjectField AnyValue)))
- pure $ map (fmap getAnyValue . getAnyObjectField) list
-
-newtype AnyArgument a = AnyArgument { getAnyArgument :: Doc.Argument } deriving (Eq, Show)
+newtype AnyValue = AnyValue { getAnyValue :: Doc.Value }
+ deriving (Eq, Show)
+
+instance Arbitrary AnyValue
+ where
+ arbitrary =
+ let variableGen :: Gen Doc.Value
+ variableGen = Doc.Variable . getAnyName <$> arbitrary
+ listGen :: Gen [Doc.Node Doc.Value]
+ listGen = (resize 5 . listOf) nodeGen
+ nodeGen :: Gen (Doc.Node Doc.Value)
+ nodeGen = fmap getAnyNode arbitrary <&> fmap getAnyValue
+ objectGen :: Gen [Doc.ObjectField Doc.Value]
+ objectGen = resize 1
+ $ fmap getNonEmpty arbitrary
+ <&> map (fmap getAnyValue . getAnyObjectField)
+ in AnyValue <$> oneof
+ [ variableGen
+ , Doc.Int <$> arbitrary
+ , Doc.Float <$> arbitrary
+ , Doc.String . getAnyPrintableText <$> arbitrary
+ , Doc.Boolean <$> arbitrary
+ , MkGen $ \_ _ -> Doc.Null
+ , Doc.Enum . getAnyName <$> arbitrary
+ , Doc.List <$> listGen
+ , Doc.Object <$> objectGen
+ ]
+
+newtype AnyArgument a = AnyArgument { getAnyArgument :: Doc.Argument }
+ deriving (Eq, Show)
instance Arbitrary a => Arbitrary (AnyArgument a) where
arbitrary = do