Update hlint to 3.8
This commit is contained in:
parent
303f84ed41
commit
6b8346e527
@ -7,46 +7,34 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
audit:
|
audit:
|
||||||
runs-on: alpine
|
runs-on: haskell
|
||||||
steps:
|
steps:
|
||||||
- name: Set up environment
|
- name: Set up environment
|
||||||
shell: ash {0}
|
|
||||||
run: |
|
run: |
|
||||||
apk add --no-cache git bash curl build-base readline-dev openssl-dev zlib-dev libpq-dev gmp-dev
|
apt-get update -y
|
||||||
- name: Prepare system
|
apt-get upgrade -y
|
||||||
run: |
|
apt-get install -y nodejs pkg-config liblzma-dev
|
||||||
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
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
~/.ghcup/bin/ghcup run --ghc 9.4.8 --cabal 3.6.2.0 -- cabal update
|
cabal update
|
||||||
~/.ghcup/bin/ghcup run --ghc 9.4.8 --cabal 3.6.2.0 -- cabal install hlint --constraint="hlint ==3.6.1"
|
cabal install hlint "--constraint=hlint ==3.8"
|
||||||
- run: ~/.cabal/bin/hlint -- src tests
|
- run: cabal exec hlint -- src tests
|
||||||
|
|
||||||
test:
|
test:
|
||||||
runs-on: alpine
|
runs-on: haskell
|
||||||
steps:
|
steps:
|
||||||
- name: Set up environment
|
- name: Set up environment
|
||||||
shell: ash {0}
|
|
||||||
run: |
|
run: |
|
||||||
apk add --no-cache git bash curl build-base readline-dev openssl-dev zlib-dev libpq-dev gmp-dev
|
apt-get update -y
|
||||||
- name: Prepare system
|
apt-get upgrade -y
|
||||||
run: |
|
apt-get install -y nodejs pkg-config liblzma-dev
|
||||||
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
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
~/.ghcup/bin/ghcup run --ghc 9.4.8 --cabal 3.6.2.0 -- cabal update
|
cabal update
|
||||||
~/.ghcup/bin/ghcup run --ghc 9.4.8 --cabal 3.6.2.0 -- cabal build graphql-test
|
cabal build graphql-test
|
||||||
- run: ~/.ghcup/bin/ghcup run --ghc 9.4.8 --cabal 3.6.2.0 -- cabal test --test-show-details=direct
|
- run: cabal test --test-show-details=streaming
|
||||||
|
|
||||||
doc:
|
doc:
|
||||||
runs-on: alpine
|
runs-on: alpine
|
||||||
|
@ -7,6 +7,7 @@ import Test.QuickCheck.Arbitrary (Arbitrary (arbitrary))
|
|||||||
import Test.QuickCheck (oneof, elements, listOf, resize, NonEmptyList (..))
|
import Test.QuickCheck (oneof, elements, listOf, resize, NonEmptyList (..))
|
||||||
import Test.QuickCheck.Gen (Gen (..))
|
import Test.QuickCheck.Gen (Gen (..))
|
||||||
import Data.Text (Text, pack)
|
import Data.Text (Text, pack)
|
||||||
|
import Data.Functor ((<&>))
|
||||||
|
|
||||||
newtype AnyPrintableChar = AnyPrintableChar { getAnyPrintableChar :: Char } deriving (Eq, Show)
|
newtype AnyPrintableChar = AnyPrintableChar { getAnyPrintableChar :: Char } deriving (Eq, Show)
|
||||||
|
|
||||||
@ -59,34 +60,36 @@ instance Arbitrary a => Arbitrary (AnyObjectField a) where
|
|||||||
location' <- getAnyLocation <$> arbitrary
|
location' <- getAnyLocation <$> arbitrary
|
||||||
pure $ AnyObjectField $ Doc.ObjectField name' value' location'
|
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
|
instance Arbitrary AnyValue
|
||||||
arbitrary = AnyValue <$> oneof
|
where
|
||||||
[ variableGen
|
arbitrary =
|
||||||
, Doc.Int <$> arbitrary
|
let variableGen :: Gen Doc.Value
|
||||||
, Doc.Float <$> arbitrary
|
variableGen = Doc.Variable . getAnyName <$> arbitrary
|
||||||
, Doc.String <$> (getAnyPrintableText <$> arbitrary)
|
listGen :: Gen [Doc.Node Doc.Value]
|
||||||
, Doc.Boolean <$> arbitrary
|
listGen = (resize 5 . listOf) nodeGen
|
||||||
, MkGen $ \_ _ -> Doc.Null
|
nodeGen :: Gen (Doc.Node Doc.Value)
|
||||||
, Doc.Enum <$> (getAnyName <$> arbitrary)
|
nodeGen = fmap getAnyNode arbitrary <&> fmap getAnyValue
|
||||||
, Doc.List <$> listGen
|
objectGen :: Gen [Doc.ObjectField Doc.Value]
|
||||||
, Doc.Object <$> objectGen
|
objectGen = resize 1
|
||||||
]
|
$ fmap getNonEmpty arbitrary
|
||||||
where
|
<&> map (fmap getAnyValue . getAnyObjectField)
|
||||||
variableGen :: Gen Doc.Value
|
in AnyValue <$> oneof
|
||||||
variableGen = Doc.Variable <$> (getAnyName <$> arbitrary)
|
[ variableGen
|
||||||
listGen :: Gen [Doc.Node Doc.Value]
|
, Doc.Int <$> arbitrary
|
||||||
listGen = (resize 5 . listOf) nodeGen
|
, Doc.Float <$> arbitrary
|
||||||
nodeGen = do
|
, Doc.String . getAnyPrintableText <$> arbitrary
|
||||||
node' <- getAnyNode <$> (arbitrary :: Gen (AnyNode AnyValue))
|
, Doc.Boolean <$> arbitrary
|
||||||
pure (getAnyValue <$> node')
|
, MkGen $ \_ _ -> Doc.Null
|
||||||
objectGen :: Gen [Doc.ObjectField Doc.Value]
|
, Doc.Enum . getAnyName <$> arbitrary
|
||||||
objectGen = resize 1 $ do
|
, Doc.List <$> listGen
|
||||||
list <- getNonEmpty <$> (arbitrary :: Gen (NonEmptyList (AnyObjectField AnyValue)))
|
, Doc.Object <$> objectGen
|
||||||
pure $ map (fmap getAnyValue . getAnyObjectField) list
|
]
|
||||||
|
|
||||||
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
|
instance Arbitrary a => Arbitrary (AnyArgument a) where
|
||||||
arbitrary = do
|
arbitrary = do
|
||||||
|
Loading…
Reference in New Issue
Block a user