forked from OSS/graphql
Update hlint to 3.8
This commit is contained in:
parent
303f84ed41
commit
6b8346e527
@ -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
|
||||
|
@ -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)
|
||||
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
|
||||
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)
|
||||
newtype AnyArgument a = AnyArgument { getAnyArgument :: Doc.Argument }
|
||||
deriving (Eq, Show)
|
||||
|
||||
instance Arbitrary a => Arbitrary (AnyArgument a) where
|
||||
arbitrary = do
|
||||
|
Loading…
Reference in New Issue
Block a user