@@ -533,6 +533,63 @@ def test_it_parses_enum_type_extension_with_directives
533
533
assert_equal 0 , enum_type_extension . values . length
534
534
end
535
535
536
+ def test_it_parses_input_object_type_extension_with_fields
537
+ document = parse ( '
538
+ extend input UserInput {
539
+ login: String!
540
+ }
541
+ ' )
542
+
543
+ input_object_type_extension = document . definitions . first
544
+ assert_equal GraphQL ::Language ::Nodes ::InputObjectTypeExtension , input_object_type_extension . class
545
+ assert_equal 'UserInput' , input_object_type_extension . name
546
+ assert_equal [ 2 , 15 ] , input_object_type_extension . position
547
+
548
+ assert_equal 1 , input_object_type_extension . fields . length
549
+ assert_equal GraphQL ::Language ::Nodes ::InputValueDefinition , input_object_type_extension . fields . first . class
550
+ assert_equal 'login' , input_object_type_extension . fields . first . name
551
+
552
+ assert_equal 0 , input_object_type_extension . directives . length
553
+ end
554
+
555
+ def test_it_parses_input_object_type_extension_with_directives_and_fields
556
+ document = parse ( '
557
+ extend input UserInput @deprecated {
558
+ login: String!
559
+ }
560
+ ' )
561
+
562
+ input_object_type_extension = document . definitions . first
563
+ assert_equal GraphQL ::Language ::Nodes ::InputObjectTypeExtension , input_object_type_extension . class
564
+ assert_equal 'UserInput' , input_object_type_extension . name
565
+ assert_equal [ 2 , 15 ] , input_object_type_extension . position
566
+
567
+ assert_equal 1 , input_object_type_extension . fields . length
568
+ assert_equal GraphQL ::Language ::Nodes ::InputValueDefinition , input_object_type_extension . fields . first . class
569
+ assert_equal 'login' , input_object_type_extension . fields . first . name
570
+
571
+ assert_equal 1 , input_object_type_extension . directives . length
572
+ assert_equal GraphQL ::Language ::Nodes ::Directive , input_object_type_extension . directives . first . class
573
+ assert_equal 'deprecated' , input_object_type_extension . directives . first . name
574
+ end
575
+
576
+ def test_it_parses_input_object_type_extension_with_directives
577
+ document = parse ( '
578
+ extend input UserInput @deprecated
579
+ ' )
580
+
581
+ input_object_type_extension = document . definitions . first
582
+ assert_equal GraphQL ::Language ::Nodes ::InputObjectTypeExtension , input_object_type_extension . class
583
+ assert_equal 'UserInput' , input_object_type_extension . name
584
+ assert_equal [ 2 , 15 ] , input_object_type_extension . position
585
+
586
+ assert_equal 0 , input_object_type_extension . fields . length
587
+
588
+ assert_equal 1 , input_object_type_extension . directives . length
589
+ assert_equal GraphQL ::Language ::Nodes ::Directive , input_object_type_extension . directives . first . class
590
+ assert_equal 'deprecated' , input_object_type_extension . directives . first . name
591
+ end
592
+
536
593
def test_it_parses_whole_definition_with_descriptions
537
594
document = parse ( SCHEMA_DEFINITION_STRING )
538
595
0 commit comments