graphql 1.5.3 → 1.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/graphql/define/assign_enum_value.rb +1 -1
- data/lib/graphql/execution/directive_checks.rb +5 -5
- data/lib/graphql/internal_representation.rb +1 -0
- data/lib/graphql/internal_representation/node.rb +117 -16
- data/lib/graphql/internal_representation/rewrite.rb +39 -94
- data/lib/graphql/internal_representation/scope.rb +88 -0
- data/lib/graphql/introspection/schema_field.rb +5 -10
- data/lib/graphql/introspection/type_by_name_field.rb +8 -13
- data/lib/graphql/introspection/typename_field.rb +5 -10
- data/lib/graphql/query.rb +24 -155
- data/lib/graphql/query/arguments_cache.rb +25 -0
- data/lib/graphql/query/validation_pipeline.rb +114 -0
- data/lib/graphql/query/variables.rb +18 -14
- data/lib/graphql/schema.rb +4 -3
- data/lib/graphql/schema/mask.rb +55 -0
- data/lib/graphql/schema/possible_types.rb +2 -2
- data/lib/graphql/schema/type_expression.rb +19 -4
- data/lib/graphql/schema/warden.rb +1 -3
- data/lib/graphql/static_validation/rules/fields_will_merge.rb +3 -2
- data/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb +4 -2
- data/lib/graphql/static_validation/rules/variable_default_values_are_correctly_typed.rb +3 -1
- data/lib/graphql/static_validation/rules/variable_usages_are_allowed.rb +1 -20
- data/lib/graphql/static_validation/validation_context.rb +6 -18
- data/lib/graphql/version.rb +1 -1
- data/spec/graphql/enum_type_spec.rb +12 -0
- data/spec/graphql/internal_representation/rewrite_spec.rb +26 -5
- data/spec/graphql/query_spec.rb +23 -3
- data/spec/graphql/static_validation/rules/fields_will_merge_spec.rb +2 -2
- data/spec/graphql/static_validation/rules/variable_default_values_are_correctly_typed_spec.rb +12 -0
- data/spec/graphql/static_validation/rules/variables_are_input_types_spec.rb +14 -0
- metadata +6 -2
data/spec/graphql/static_validation/rules/variable_default_values_are_correctly_typed_spec.rb
CHANGED
@@ -45,6 +45,18 @@ describe GraphQL::StaticValidation::VariableDefaultValuesAreCorrectlyTyped do
|
|
45
45
|
assert_equal(expected, errors)
|
46
46
|
end
|
47
47
|
|
48
|
+
it "returns a client error when the type isn't found" do
|
49
|
+
res = schema.execute <<-GRAPHQL
|
50
|
+
query GetCheese($msg: IDX = 1) {
|
51
|
+
cheese(id: $msg) @skip(if: true) { flavor }
|
52
|
+
}
|
53
|
+
GRAPHQL
|
54
|
+
|
55
|
+
assert_equal false, res.key?("data")
|
56
|
+
assert_equal 1, res["errors"].length
|
57
|
+
assert_equal "IDX isn't a defined input type (on $msg)", res["errors"][0]["message"]
|
58
|
+
end
|
59
|
+
|
48
60
|
describe "null default values" do
|
49
61
|
describe "variables with valid default null values" do
|
50
62
|
let(:schema) {
|
@@ -56,5 +56,19 @@ describe GraphQL::StaticValidation::VariablesAreInputTypes do
|
|
56
56
|
assert_equal 1, res["errors"].length
|
57
57
|
assert_equal "IDX isn't a defined input type (on $id)", res["errors"][0]["message"]
|
58
58
|
end
|
59
|
+
|
60
|
+
it "returns a client error when there are directives" do
|
61
|
+
res = schema.execute <<-GRAPHQL
|
62
|
+
query GetCheese($msg: IDX) {
|
63
|
+
cheese(id: $id) @skip(if: true) { flavor }
|
64
|
+
}
|
65
|
+
GRAPHQL
|
66
|
+
|
67
|
+
assert_equal false, res.key?("data")
|
68
|
+
assert_equal 3, res["errors"].length
|
69
|
+
assert_equal "IDX isn't a defined input type (on $msg)", res["errors"][0]["message"]
|
70
|
+
assert_equal "Variable $msg is declared by GetCheese but not used", res["errors"][1]["message"]
|
71
|
+
assert_equal "Variable $id is used by GetCheese but not declared", res["errors"][2]["message"]
|
72
|
+
end
|
59
73
|
end
|
60
74
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Mosolgo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: benchmark-ips
|
@@ -378,6 +378,7 @@ files:
|
|
378
378
|
- lib/graphql/internal_representation.rb
|
379
379
|
- lib/graphql/internal_representation/node.rb
|
380
380
|
- lib/graphql/internal_representation/rewrite.rb
|
381
|
+
- lib/graphql/internal_representation/scope.rb
|
381
382
|
- lib/graphql/internal_representation/visit.rb
|
382
383
|
- lib/graphql/introspection.rb
|
383
384
|
- lib/graphql/introspection/arguments_field.rb
|
@@ -416,6 +417,7 @@ files:
|
|
416
417
|
- lib/graphql/object_type.rb
|
417
418
|
- lib/graphql/query.rb
|
418
419
|
- lib/graphql/query/arguments.rb
|
420
|
+
- lib/graphql/query/arguments_cache.rb
|
419
421
|
- lib/graphql/query/context.rb
|
420
422
|
- lib/graphql/query/executor.rb
|
421
423
|
- lib/graphql/query/input_validation_result.rb
|
@@ -425,6 +427,7 @@ files:
|
|
425
427
|
- lib/graphql/query/serial_execution/operation_resolution.rb
|
426
428
|
- lib/graphql/query/serial_execution/selection_resolution.rb
|
427
429
|
- lib/graphql/query/serial_execution/value_resolution.rb
|
430
|
+
- lib/graphql/query/validation_pipeline.rb
|
428
431
|
- lib/graphql/query/variable_validation_error.rb
|
429
432
|
- lib/graphql/query/variables.rb
|
430
433
|
- lib/graphql/relay.rb
|
@@ -452,6 +455,7 @@ files:
|
|
452
455
|
- lib/graphql/schema/instrumented_field_map.rb
|
453
456
|
- lib/graphql/schema/invalid_type_error.rb
|
454
457
|
- lib/graphql/schema/loader.rb
|
458
|
+
- lib/graphql/schema/mask.rb
|
455
459
|
- lib/graphql/schema/middleware_chain.rb
|
456
460
|
- lib/graphql/schema/null_mask.rb
|
457
461
|
- lib/graphql/schema/possible_types.rb
|