{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Case.JSON.Custom.Mutation
( test,
)
where
import Data.ByteString.Lazy.Char8
( ByteString,
)
import Data.Morpheus.Client
( Fetch (..),
FetchError,
gql,
)
import Data.Text (Text)
import Spec.Utils
( defineClientWithJSON,
mockApi,
)
import Test.Tasty
( TestTree,
)
import Test.Tasty.HUnit
( assertEqual,
testCase,
)
import Prelude
( ($),
Either (..),
IO,
Maybe (..),
String,
)
defineClientWithJSON
"JSON/Custom"
[gql|
mutation TestMutation
{
mutationTypeName
}
|]
resolver :: ByteString -> IO ByteString
resolver = mockApi "JSON/Custom/Mutation"
client :: IO (Either (FetchError TestMutation) TestMutation)
client = fetch resolver ()
test :: TestTree
test = testCase "test Mutation" $ do
value <- client
assertEqual
"test custom Mutation"
( Right
( TestMutation
{ mutationTypeName = Just "TestMutation"
}
)
)
value