packages feed

morpheus-graphql-client-0.20.0: test/Case/Interface/Test.hs

{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}

module Case.Interface.Test
  ( test,
  )
where

import Data.Morpheus.Client
  ( declareLocalTypes,
  )
import Relude
import Spec.Utils
  ( assertFetch,
    path,
  )
import Test.Tasty
  ( TestTree,
  )

declareLocalTypes
  (path "Interface/schema.gql")
  (path "Interface/query.gql")

test :: TestTree
test =
  assertFetch
    "Interface"
    Nothing
    ()
    ( Right
        MyQuery
          { character =
              [ MyQueryCharacterDeity
                  { __typename = "Deity",
                    name = "Deity Name",
                    power = "Deity Power"
                  },
                MyQueryCharacterCharacter
                  { __typename = "Character",
                    name = "Character Name"
                  },
                MyQueryCharacterHero
                  { __typename = "Hero",
                    name = "Hero Name",
                    hobby = "Deity Power"
                  }
              ],
            character2 =
              [ MyQueryCharacter2Character
                  { __typename = "Character",
                    name1 = "test name",
                    name = "test name"
                  }
              ],
            character3 =
              [ MyQueryCharacter3Hero
                  { __typename = "Hero",
                    hobby = "Hero Hobby",
                    name2 = "Hero name2"
                  },
                MyQueryCharacter3Character
                  { __typename = "Deity",
                    name2 = "Hero name2"
                  },
                MyQueryCharacter3Character
                  { __typename = "Character",
                    name2 = "Character name2"
                  }
              ],
            character4 =
              [ MyQueryCharacter4Character
                  { __typename = "Character"
                  },
                MyQueryCharacter4Hero
                  { __typename = "Hero",
                    hobby = "Hero Hobby"
                  },
                MyQueryCharacter4Character
                  { __typename = "Deity"
                  }
              ]
          }
    )