expectPassesRule( new UniqueVariableNames(), ' query A($x: Int, $y: String) { __typename } query B($x: String, $y: Int) { __typename } ' ); } /** * @see it('duplicate variable names') */ public function testDuplicateVariableNames() : void { $this->expectFailsRule( new UniqueVariableNames(), ' query A($x: Int, $x: Int, $x: String) { __typename } query B($x: String, $x: Int) { __typename } query C($x: Int, $x: Int) { __typename } ', [ $this->duplicateVariable('x', 2, 16, 2, 25), $this->duplicateVariable('x', 2, 16, 2, 34), $this->duplicateVariable('x', 3, 16, 3, 28), $this->duplicateVariable('x', 4, 16, 4, 25), ] ); } private function duplicateVariable($name, $l1, $c1, $l2, $c2) { return FormattedError::create( UniqueVariableNames::duplicateVariableMessage($name), [new SourceLocation($l1, $c1), new SourceLocation($l2, $c2)] ); } }