summaryrefslogtreecommitdiff
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
parent303f84ed417b8f52d597e705c88d13a99dbeb7ca (diff)
downloadgraphql-6b8346e5278f71fb813bb564dbb40907a37df6e7.tar.gz
Update hlint to 3.8
-rw-r--r--.gitea/workflows/build.yml40
-rw-r--r--tests/Language/GraphQL/AST/Arbitrary.hs59
2 files changed, 45 insertions, 54 deletions
diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml
index 6851bbd..74e222c 100644
--- a/.gitea/workflows/build.yml
+++ b/.gitea/workflows/build.yml
@@ -7,46 +7,34 @@ on:
jobs:
audit:
- runs-on: alpine
+ runs-on: haskell
steps:
- name: Set up environment
- shell: ash {0}
- run: |
- apk add --no-cache git bash curl build-base readline-dev openssl-dev zlib-dev libpq-dev gmp-dev
- - name: Prepare system
run: |
- curl --create-dirs --output-dir \
- ~/.ghcup/bin https://downloads.haskell.org/~ghcup/0.1.19.5/x86_64-linux-ghcup-0.1.19.5 -o ghcup
- chmod +x ~/.ghcup/bin/ghcup
- ~/.ghcup/bin/ghcup install ghc 9.4.8
- ~/.ghcup/bin/ghcup install cabal 3.6.2.0
+ apt-get update -y
+ apt-get upgrade -y
+ apt-get install -y nodejs pkg-config liblzma-dev
- uses: actions/checkout@v4
- name: Install dependencies
run: |
- ~/.ghcup/bin/ghcup run --ghc 9.4.8 --cabal 3.6.2.0 -- cabal update
- ~/.ghcup/bin/ghcup run --ghc 9.4.8 --cabal 3.6.2.0 -- cabal install hlint --constraint="hlint ==3.6.1"
- - run: ~/.cabal/bin/hlint -- src tests
+ cabal update
+ cabal install hlint "--constraint=hlint ==3.8"
+ - run: cabal exec hlint -- src tests
test:
- runs-on: alpine
+ runs-on: haskell
steps:
- name: Set up environment
- shell: ash {0}
- run: |
- apk add --no-cache git bash curl build-base readline-dev openssl-dev zlib-dev libpq-dev gmp-dev
- - name: Prepare system
run: |
- curl --create-dirs --output-dir \
- ~/.ghcup/bin https://downloads.haskell.org/~ghcup/0.1.19.5/x86_64-linux-ghcup-0.1.19.5 -o ghcup
- chmod +x ~/.ghcup/bin/ghcup
- ~/.ghcup/bin/ghcup install ghc 9.4.8
- ~/.ghcup/bin/ghcup install cabal 3.6.2.0
+ apt-get update -y
+ apt-get upgrade -y
+ apt-get install -y nodejs pkg-config liblzma-dev
- uses: actions/checkout@v4
- name: Install dependencies
run: |
- ~/.ghcup/bin/ghcup run --ghc 9.4.8 --cabal 3.6.2.0 -- cabal update
- ~/.ghcup/bin/ghcup run --ghc 9.4.8 --cabal 3.6.2.0 -- cabal build graphql-test
- - run: ~/.ghcup/bin/ghcup run --ghc 9.4.8 --cabal 3.6.2.0 -- cabal test --test-show-details=direct
+ cabal update
+ cabal build graphql-test
+ - run: cabal test --test-show-details=streaming
doc:
runs-on: alpine
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