public void output_types_are_invalid() { ShouldFailRule(_ => { _.Query = @" query Foo($a: Dog, $b: [[CatOrDog!]]!, $c: Pet) { field(a: $a, b: $b, c: $c) } "; _.Error( message: VariablesAreInputTypesError.UndefinedVarMessage("a", "Dog"), line: 2, column: 29); _.Error( message: VariablesAreInputTypesError.UndefinedVarMessage("b", "[[CatOrDog!]]!"), line: 2, column: 38); _.Error( message: VariablesAreInputTypesError.UndefinedVarMessage("c", "Pet"), line: 2, column: 58); _.Error( message: "Variable '$b' is invalid. No value provided for a non-null variable.", line: 2, column: 38); }); }
public void TestVariableObject_InvalidType(string param) { var error1 = new ValidationError(null, VariablesAreInputTypesError.NUMBER, VariablesAreInputTypesError.UndefinedVarMessage("arg", "abcdefg")) { Code = "VARIABLES_ARE_INPUT_TYPES" }; error1.AddLocation(1, 7); var error2 = new ValidationError(null, KnownTypeNamesError.NUMBER, KnownTypeNamesError.UnknownTypeMessage("abcdefg", null)) { Code = "KNOWN_TYPE_NAMES" }; error2.AddLocation(1, 13); var error3 = new ValidationError(null, "5.8", "Variable \u0027$arg\u0027 is invalid. Variable has unknown type \u0027abcdefg\u0027") { Code = "INVALID_VALUE" }; error3.AddLocation(1, 7); var expected = CreateQueryResult(null, new ExecutionErrors { error1, error2, error3 }, executed: false); AssertQueryIgnoreErrors("query($arg: abcdefg) { test1 (arg: $arg) }", expected, inputs: $"{{ \"arg\": {param} }}".ToInputs(), expectedErrorCount: 3, renderErrors: true); }