Adds Verify support to verify GraphQL.
See Milestones for release notes.
[ModuleInitializer]publicstaticvoidInitialize()=>VerifyGraphQL.Initialize();[Test]publicTaskExecutionResultWithData(){varresult=newExecutionResult{Executed=true,Data=newDictionary<string,object?>{{"user",newDictionary<string,object?>{{"name","John"},{"age",30}}}}};returnVerify(result);}Result:
{
Data: {
user: {
age: 30,
name: John
}
}
}[Test]publicTaskExecutionResultWithErrors(){varerror=newExecutionError("Some error"){Path=["query","user"]};error.AddLocation(new(1,5));varresult=newExecutionResult{Executed=true,Errors=[error]};returnVerify(result);}Result:
{
Errors: [
{
Message: Some error,
Locations: [
{
Line: 1,
Column: 5
}
],
Path: [
query,
user
]
}
]
}[Test]publicTaskExecutionResultWithExtensions(){varresult=newExecutionResult{Executed=true,Data=newDictionary<string,object?>{{"hello","world"}},Extensions=new(){{"tracing","some-trace-data"}}};returnVerify(result);}Result:
{
Data: {
hello: world
},
Extensions: {
tracing: some-trace-data
}
}[Test]publicTaskExecutionResultFull(){varerror=newExecutionError("Some error"){Path=["query","user"]};error.AddLocation(new(1,5));varresult=newExecutionResult{Executed=true,Data=newDictionary<string,object?>{{"hello","world"}},Errors=[error],Extensions=new(){{"tracing","some-trace-data"}}};returnVerify(result);}Result:
{
Errors: [
{
Message: Some error,
Locations: [
{
Line: 1,
Column: 5
}
],
Path: [
query,
user
]
}
],
Data: {
hello: world
},
Extensions: {
tracing: some-trace-data
}
}[Test]publicTaskExecutionResultNotExecuted(){varresult=newExecutionResult{Executed=false,Data=newDictionary<string,object?>{{"hello","world"}}};returnVerify(result);}Result:
{}[Test]publicTaskGraphQLRequest(){varrequest=newGraphQLRequest{Query="{ hero { name } }",OperationName="HeroQuery",Variables=new(newDictionary<string,object?>{{"id","1"}}),Extensions=new(newDictionary<string,object?>{{"tracing",true}})};returnVerify(request);}Result:
{
Query: { hero { name } },
OperationName: HeroQuery,
Variables: {
id: 1
},
Extensions: {
tracing: true
}
}[Test]publicTaskOperationMessage(){varmessage=newOperationMessage{Type="connection_init",Id="1",Payload=newDictionary<string,object?>{{"query","{ hero { name } }"}}};returnVerify(message);}Result:
{
Type: connection_init,
Id: 1,
Payload: {
query: { hero { name } }
}
}