Skip to content

Commit 48bb6ba

Browse files
Marc-Andre Girouxrmosolgo
authored andcommitted
unused vars
1 parent 81a9de2 commit 48bb6ba

File tree

2 files changed

+54
-5
lines changed

2 files changed

+54
-5
lines changed

lib/graphql/static_validation/rules/fields_will_merge.rb

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,6 @@ def find_conflicts_within(response_keys)
180180
end
181181

182182
def find_conflict(response_key, field1, field2, mutually_exclusive: false)
183-
parent_type1 = field1.parents.last
184-
parent_type2 = field2.parents.last
185-
186183
node1 = field1.node
187184
node2 = field2.node
188185

spec/graphql/static_validation/rules/fields_will_merge_spec.rb

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,21 +39,26 @@
3939
species: PetSpecies!
4040
}
4141
42+
interface Mammal {
43+
name(surname: Boolean = false): String!
44+
nickname: String
45+
}
46+
4247
interface Pet {
4348
name(surname: Boolean = false): String!
4449
nickname: String
4550
toys: [Toy!]!
4651
}
4752
48-
type Dog implements Pet {
53+
type Dog implements Pet & Mammal {
4954
name(surname: Boolean = false): String!
5055
nickname: String
5156
doesKnowCommand(dogCommand: PetCommand): Boolean!
5257
barkVolume: Int!
5358
toys: [Toy!]!
5459
}
5560
56-
type Cat implements Pet {
61+
type Cat implements Pet & Mammal {
5762
name(surname: Boolean = false): String!
5863
nickname: String
5964
doesKnowCommand(catCommand: PetCommand): Boolean!
@@ -455,6 +460,53 @@
455460
end
456461
end
457462

463+
describe "same aliases not allowed on different interfaces" do
464+
let(:query_string) {%|
465+
{
466+
pet {
467+
... on Pet {
468+
name
469+
}
470+
... on Mammal {
471+
name: nickname
472+
}
473+
}
474+
}
475+
|}
476+
477+
it "fails rule" do
478+
assert_equal [
479+
"Field 'name' has a field conflict: name or nickname?",
480+
], error_messages
481+
end
482+
end
483+
484+
describe "same aliases allowed on different parent interfaces and different concrete types" do
485+
let(:query_string) {%|
486+
{
487+
pet {
488+
... on Pet {
489+
...X
490+
}
491+
... on Mammal {
492+
...Y
493+
}
494+
}
495+
}
496+
497+
fragment X on Dog {
498+
name
499+
}
500+
fragment Y on Cat {
501+
name: nickname
502+
}
503+
|}
504+
505+
it "passes rule" do
506+
assert_equal [], errors
507+
end
508+
end
509+
458510
describe "allows different args where no conflict is possible" do
459511
let(:query_string) {%|
460512
{

0 commit comments

Comments
 (0)