@@ -661,6 +661,8 @@ def should_detect_all_breaking_changes():
661661
662662 directive @NonNullDirectiveAdded on FIELD_DEFINITION
663663
664+ directive @DirectiveThatWasRepeatable repeatable on FIELD_DEFINITION
665+
664666 directive @DirectiveName on FIELD_DEFINITION | QUERY
665667
666668 type ArgThatChanges {
@@ -697,6 +699,8 @@ def should_detect_all_breaking_changes():
697699
698700 directive @NonNullDirectiveAdded(arg1: Boolean!) on FIELD_DEFINITION
699701
702+ directive @DirectiveThatWasRepeatable on FIELD_DEFINITION
703+
700704 directive @DirectiveName on FIELD_DEFINITION
701705
702706 type ArgThatChanges {
@@ -773,6 +777,10 @@ def should_detect_all_breaking_changes():
773777 BreakingChangeType .REQUIRED_DIRECTIVE_ARG_ADDED ,
774778 "A required arg arg1 on directive NonNullDirectiveAdded was added." ,
775779 ),
780+ (
781+ BreakingChangeType .DIRECTIVE_REPEATABLE_REMOVED ,
782+ "Repeatable flag was removed from DirectiveThatWasRepeatable." ,
783+ ),
776784 (
777785 BreakingChangeType .DIRECTIVE_LOCATION_REMOVED ,
778786 "QUERY was removed from DirectiveName." ,
@@ -858,6 +866,26 @@ def should_detect_if_an_optional_directive_argument_was_added():
858866 )
859867 ]
860868
869+ def should_detect_removal_of_repeatable_flag ():
870+ old_schema = build_schema (
871+ """
872+ directive @DirectiveName repeatable on OBJECT
873+ """
874+ )
875+
876+ new_schema = build_schema (
877+ """
878+ directive @DirectiveName on OBJECT
879+ """
880+ )
881+
882+ assert find_breaking_changes (old_schema , new_schema ) == [
883+ (
884+ BreakingChangeType .DIRECTIVE_REPEATABLE_REMOVED ,
885+ "Repeatable flag was removed from DirectiveName." ,
886+ )
887+ ]
888+
861889 def should_detect_locations_removed_from_a_directive ():
862890 old_schema = build_schema (
863891 """
0 commit comments