Adds Verify support to verify GraphQL.
See Milestones for release notes.
[ModuleInitializer] public static void Initialize() => VerifyGraphQL.Initialize();
[Test] public Task ExecutionResultWithData() { var result = new ExecutionResult { Executed = true, Data = new Dictionary<string, object?> { { "user", new Dictionary<string, object?> { { "name", "John" }, { "age", 30 } } } } }; return Verify(result); }
Result:
{
Data: {
user: {
age: 30,
name: John
}
}
}[Test] public Task ExecutionResultWithErrors() { var error = new ExecutionError("Some error") { Path = ["query", "user"] }; error.AddLocation(new(1, 5)); var result = new ExecutionResult { Executed = true, Errors = [error] }; return Verify(result); }
Result:
{
Errors: [
{
Message: Some error,
Locations: [
{
Line: 1,
Column: 5
}
],
Path: [
query,
user
]
}
]
}[Test] public Task ExecutionResultWithExtensions() { var result = new ExecutionResult { Executed = true, Data = new Dictionary<string, object?> { { "hello", "world" } }, Extensions = new() { { "tracing", "some-trace-data" } } }; return Verify(result); }
Result:
{
Data: {
hello: world
},
Extensions: {
tracing: some-trace-data
}
}[Test] public Task ExecutionResultFull() { var error = new ExecutionError("Some error") { Path = ["query", "user"] }; error.AddLocation(new(1, 5)); var result = new ExecutionResult { Executed = true, Data = new Dictionary<string, object?> { { "hello", "world" } }, Errors = [error], Extensions = new() { { "tracing", "some-trace-data" } } }; return Verify(result); }
Result:
{
Errors: [
{
Message: Some error,
Locations: [
{
Line: 1,
Column: 5
}
],
Path: [
query,
user
]
}
],
Data: {
hello: world
},
Extensions: {
tracing: some-trace-data
}
}[Test] public Task ExecutionResultNotExecuted() { var result = new ExecutionResult { Executed = false, Data = new Dictionary<string, object?> { { "hello", "world" } } }; return Verify(result); }
Result:
{}[Test] public Task GraphQLRequest() { var request = new GraphQLRequest { Query = "{ hero { name } }", OperationName = "HeroQuery", Variables = new( new Dictionary<string, object?> { { "id", "1" } }), Extensions = new( new Dictionary<string, object?> { { "tracing", true } }) }; return Verify(request); }
Result:
{
Query: { hero { name } },
OperationName: HeroQuery,
Variables: {
id: 1
},
Extensions: {
tracing: true
}
}[Test] public Task OperationMessage() { var message = new OperationMessage { Type = "connection_init", Id = "1", Payload = new Dictionary<string, object?> { { "query", "{ hero { name } }" } } }; return Verify(message); }
Result:
{
Type: connection_init,
Id: 1,
Payload: {
query: { hero { name } }
}
}