Skip to content

Commit 20d12cb

Browse files
author
Marc-Andre Giroux
committed
unused vars
1 parent 9022881 commit 20d12cb

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!
@@ -448,6 +453,53 @@
448453
end
449454
end
450455

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

0 commit comments

Comments
 (0)