Skip to content

Commit b3c769f

Browse files
committed
Mutation type is not available in OperationVisitor
1 parent 883c4f8 commit b3c769f

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

src/validation/rules/fields_on_correct_type.rs

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,9 @@ pub static FIELDS_ON_CORRECT_TYPE_TEST_SCHEMA: &str = "
112112
type Query {
113113
human: Human
114114
}
115+
type Mutation {
116+
deletePetByName(name: String): Pet
117+
}
115118
";
116119

117120
#[test]
@@ -213,6 +216,48 @@ fn ignores_fields_on_unknown_type() {
213216
assert_eq!(get_messages(&errors).len(), 0);
214217
}
215218

219+
#[test]
220+
fn unknown_query_field() {
221+
use crate::validation::test_utils::*;
222+
223+
let mut plan = create_plan_from_rule(Box::new(FieldsOnCorrectType {}));
224+
let errors = test_operation_with_schema(
225+
"query test {
226+
unknownField
227+
}",
228+
&FIELDS_ON_CORRECT_TYPE_TEST_SCHEMA,
229+
&mut plan,
230+
);
231+
232+
let messages = get_messages(&errors);
233+
assert_eq!(messages.len(), 1);
234+
assert_eq!(
235+
messages,
236+
vec!["Cannot query field \"unknownField\" on type \"Query\"."]
237+
);
238+
}
239+
240+
#[test]
241+
fn unknown_mutation_field() {
242+
use crate::validation::test_utils::*;
243+
244+
let mut plan = create_plan_from_rule(Box::new(FieldsOnCorrectType {}));
245+
let errors = test_operation_with_schema(
246+
"mutation test {
247+
unknownField
248+
}",
249+
&FIELDS_ON_CORRECT_TYPE_TEST_SCHEMA,
250+
&mut plan,
251+
);
252+
253+
let messages = get_messages(&errors);
254+
assert_eq!(messages.len(), 1);
255+
assert_eq!(
256+
messages,
257+
vec!["Cannot query field \"unknownField\" on type \"Mutation\"."]
258+
);
259+
}
260+
216261
#[test]
217262
fn reports_errors_when_type_is_known_again() {
218263
use crate::validation::test_utils::*;

0 commit comments

Comments
 (0)