graphql-engine/server/src-test/Hasura/RQL/IR/SelectSpec.hs
Antoine Leblanc 3cbcbd9291 Remove RQL/Types.hs
## Description

This PR removes `RQL.Types`, which was now only re-exporting a bunch of unrelated modules.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4363
GitOrigin-RevId: 894f29a19bff70b3dad8abc5d9858434d5065417
2022-04-27 13:58:47 +00:00

35 lines
1.2 KiB
Haskell

module Hasura.RQL.IR.SelectSpec (spec) where
import Data.Bifoldable
import Data.List.Extended (singleton)
import Hasura.Backends.Postgres.RQLGenerator
import Hasura.Generator.Common (defaultRange)
import Hasura.Prelude
import Hasura.RQL.IR.Select (AnnSelectG (..), bifoldMapAnnSelectG)
import Hasura.SQL.Backend
import Hedgehog
import Hedgehog.Gen (int)
import Test.Hspec
import Test.Hspec.Hedgehog (hedgehog)
newtype MyPair (b :: BackendType) r v = MyPair (r, v)
deriving stock (Show)
deriving newtype (Foldable, Bifoldable)
genMyPair :: MonadGen m => m r -> m v -> m (MyPair b r v)
genMyPair genR genV = do
r <- genR
v <- genV
pure $ MyPair (r, v)
spec :: Spec
spec = do
describe "bifoldMapAnnSelectG" $ do
it "bifoldMapAnnSelectG (const mempty) == foldMap" $
hedgehog $ do
annSelectG :: AnnSelectG ('Postgres 'Vanilla) (MyPair ('Postgres 'Vanilla) Int) Int <-
forAll $
genAnnSelectG (int defaultRange) (genMyPair (int defaultRange) (int defaultRange))
bifoldMapAnnSelectG (const []) singleton annSelectG === foldMap singleton annSelectG
bifoldMapAnnSelectG singleton (const []) annSelectG === foldMap (foldMap $ bifoldMap singleton (const [])) (_asnFields annSelectG)