Boolean') */ public function testBooleanXBoolean() : void { // Boolean => Boolean $this->expectPassesRule(new VariablesInAllowedPosition(), ' query Query($booleanArg: Boolean) { complicatedArgs { booleanArgField(booleanArg: $booleanArg) } } '); } /** * @see it('Boolean => Boolean within fragment') */ public function testBooleanXBooleanWithinFragment() : void { // Boolean => Boolean within fragment $this->expectPassesRule(new VariablesInAllowedPosition, ' fragment booleanArgFrag on ComplicatedArgs { booleanArgField(booleanArg: $booleanArg) } query Query($booleanArg: Boolean) { complicatedArgs { ...booleanArgFrag } } '); $this->expectPassesRule(new VariablesInAllowedPosition, ' query Query($booleanArg: Boolean) { complicatedArgs { ...booleanArgFrag } } fragment booleanArgFrag on ComplicatedArgs { booleanArgField(booleanArg: $booleanArg) } '); } /** * @see it('Boolean! => Boolean') */ public function testBooleanNonNullXBoolean() : void { // Boolean! => Boolean $this->expectPassesRule(new VariablesInAllowedPosition, ' query Query($nonNullBooleanArg: Boolean!) { complicatedArgs { booleanArgField(booleanArg: $nonNullBooleanArg) } } '); } /** * @see it('Boolean! => Boolean within fragment') */ public function testBooleanNonNullXBooleanWithinFragment() : void { // Boolean! => Boolean within fragment $this->expectPassesRule(new VariablesInAllowedPosition, ' fragment booleanArgFrag on ComplicatedArgs { booleanArgField(booleanArg: $nonNullBooleanArg) } query Query($nonNullBooleanArg: Boolean!) { complicatedArgs { ...booleanArgFrag } } '); } /** * @see it('Int => Int! with default') */ public function testIntXIntNonNullWithDefault() : void { // Int => Int! with default $this->expectPassesRule(new VariablesInAllowedPosition, ' query Query($intArg: Int = 1) { complicatedArgs { nonNullIntArgField(nonNullIntArg: $intArg) } } '); } /** * @see it('[String] => [String]') */ public function testListOfStringXListOfString() : void { $this->expectPassesRule(new VariablesInAllowedPosition, ' query Query($stringListVar: [String]) { complicatedArgs { stringListArgField(stringListArg: $stringListVar) } } '); } /** * @see it('[String!] => [String]') */ public function testListOfStringNonNullXListOfString() : void { $this->expectPassesRule(new VariablesInAllowedPosition, ' query Query($stringListVar: [String!]) { complicatedArgs { stringListArgField(stringListArg: $stringListVar) } } '); } /** * @see it('String => [String] in item position') */ public function testStringXListOfStringInItemPosition() : void { $this->expectPassesRule(new VariablesInAllowedPosition, ' query Query($stringVar: String) { complicatedArgs { stringListArgField(stringListArg: [$stringVar]) } } '); } /** * @see it('String! => [String] in item position') */ public function testStringNonNullXListOfStringInItemPosition() : void { $this->expectPassesRule(new VariablesInAllowedPosition, ' query Query($stringVar: String!) { complicatedArgs { stringListArgField(stringListArg: [$stringVar]) } } '); } /** * @see it('ComplexInput => ComplexInput') */ public function testComplexInputXComplexInput() : void { $this->expectPassesRule(new VariablesInAllowedPosition, ' query Query($complexVar: ComplexInput) { complicatedArgs { complexArgField(complexArg: $ComplexInput) } } '); } /** * @see it('ComplexInput => ComplexInput in field position') */ public function testComplexInputXComplexInputInFieldPosition() : void { $this->expectPassesRule(new VariablesInAllowedPosition, ' query Query($boolVar: Boolean = false) { complicatedArgs { complexArgField(complexArg: {requiredArg: $boolVar}) } } '); } /** * @see it('Boolean! => Boolean! in directive') */ public function testBooleanNonNullXBooleanNonNullInDirective() : void { $this->expectPassesRule(new VariablesInAllowedPosition, ' query Query($boolVar: Boolean!) { dog @include(if: $boolVar) } '); } /** * @see it('Boolean => Boolean! in directive with default') */ public function testBooleanXBooleanNonNullInDirectiveWithDefault() : void { $this->expectPassesRule(new VariablesInAllowedPosition, ' query Query($boolVar: Boolean = false) { dog @include(if: $boolVar) } '); } /** * @see it('Int => Int!') */ public function testIntXIntNonNull() : void { $this->expectFailsRule(new VariablesInAllowedPosition, ' query Query($intArg: Int) { complicatedArgs { nonNullIntArgField(nonNullIntArg: $intArg) } } ', [ FormattedError::create( VariablesInAllowedPosition::badVarPosMessage('intArg', 'Int', 'Int!'), [new SourceLocation(2, 19), new SourceLocation(4, 45)] ) ]); } /** * @see it('Int => Int! within fragment') */ public function testIntXIntNonNullWithinFragment() : void { $this->expectFailsRule(new VariablesInAllowedPosition, ' fragment nonNullIntArgFieldFrag on ComplicatedArgs { nonNullIntArgField(nonNullIntArg: $intArg) } query Query($intArg: Int) { complicatedArgs { ...nonNullIntArgFieldFrag } } ', [ FormattedError::create( VariablesInAllowedPosition::badVarPosMessage('intArg', 'Int', 'Int!'), [new SourceLocation(6, 19), new SourceLocation(3, 43)] ) ]); } /** * @see it('Int => Int! within nested fragment') */ public function testIntXIntNonNullWithinNestedFragment() : void { // Int => Int! within nested fragment $this->expectFailsRule(new VariablesInAllowedPosition, ' fragment outerFrag on ComplicatedArgs { ...nonNullIntArgFieldFrag } fragment nonNullIntArgFieldFrag on ComplicatedArgs { nonNullIntArgField(nonNullIntArg: $intArg) } query Query($intArg: Int) { complicatedArgs { ...outerFrag } } ', [ FormattedError::create( VariablesInAllowedPosition::badVarPosMessage('intArg', 'Int', 'Int!'), [new SourceLocation(10, 19), new SourceLocation(7,43)] ) ]); } /** * @see it('String over Boolean') */ public function testStringOverBoolean() : void { $this->expectFailsRule(new VariablesInAllowedPosition, ' query Query($stringVar: String) { complicatedArgs { booleanArgField(booleanArg: $stringVar) } } ', [ FormattedError::create( VariablesInAllowedPosition::badVarPosMessage('stringVar', 'String', 'Boolean'), [new SourceLocation(2,19), new SourceLocation(4,39)] ) ]); } /** * @see it('String => [String]') */ public function testStringXListOfString() : void { $this->expectFailsRule(new VariablesInAllowedPosition, ' query Query($stringVar: String) { complicatedArgs { stringListArgField(stringListArg: $stringVar) } } ', [ FormattedError::create( VariablesInAllowedPosition::badVarPosMessage('stringVar', 'String', '[String]'), [new SourceLocation(2, 19), new SourceLocation(4,45)] ) ]); } /** * @see it('Boolean => Boolean! in directive') */ public function testBooleanXBooleanNonNullInDirective() : void { $this->expectFailsRule(new VariablesInAllowedPosition, ' query Query($boolVar: Boolean) { dog @include(if: $boolVar) } ', [ FormattedError::create( VariablesInAllowedPosition::badVarPosMessage('boolVar', 'Boolean', 'Boolean!'), [new SourceLocation(2, 19), new SourceLocation(3,26)] ) ]); } /** * @see it('String => Boolean! in directive') */ public function testStringXBooleanNonNullInDirective() : void { // String => Boolean! in directive $this->expectFailsRule(new VariablesInAllowedPosition, ' query Query($stringVar: String) { dog @include(if: $stringVar) } ', [ FormattedError::create( VariablesInAllowedPosition::badVarPosMessage('stringVar', 'String', 'Boolean!'), [new SourceLocation(2, 19), new SourceLocation(3,26)] ) ]); } /** * @see it('[String] => [String!]') */ public function testStringArrayXStringNonNullArray() : void { $this->expectFailsRule( new VariablesInAllowedPosition, ' query Query($stringListVar: [String]) { complicatedArgs { stringListNonNullArgField(stringListNonNullArg: $stringListVar) } } ', [ FormattedError::create( VariablesInAllowedPosition::badVarPosMessage('stringListVar', '[String]', '[String!]'), [new SourceLocation(2, 19), new SourceLocation(5, 59)] ) ] ); } }