@@ -558,3 +558,61 @@ func TestCompareResponses_V3_ConfigurableCodesBreaking(t *testing.T) {
558558 assert .Equal (t , 3 , changes3 .TotalChanges ())
559559 assert .Equal (t , 1 , changes3 .TotalBreakingChanges ()) // only the addition is breaking now
560560}
561+
562+ func TestCompareResponses_V3_BreakingNestedResponseExtensionRemovalCounted (t * testing.T ) {
563+ low .ClearHashCache ()
564+
565+ left := `200:
566+ description: OK response
567+ x-summary: legacy summary`
568+
569+ right := `200:
570+ description: OK response`
571+
572+ var lNode , rNode yaml.Node
573+ _ = yaml .Unmarshal ([]byte (left ), & lNode )
574+ _ = yaml .Unmarshal ([]byte (right ), & rNode )
575+
576+ var lDoc v3.Responses
577+ var rDoc v3.Responses
578+ _ = low .BuildModel (lNode .Content [0 ], & lDoc )
579+ _ = low .BuildModel (rNode .Content [0 ], & rDoc )
580+ _ = lDoc .Build (context .Background (), nil , lNode .Content [0 ], nil )
581+ _ = rDoc .Build (context .Background (), nil , rNode .Content [0 ], nil )
582+
583+ changes := CompareResponses (& lDoc , & rDoc )
584+ assert .NotNil (t , changes )
585+ assert .Equal (t , 1 , changes .TotalChanges ())
586+ assert .Equal (t , 1 , changes .TotalBreakingChanges ())
587+ assert .NotNil (t , changes .ResponseChanges ["200" ])
588+ assert .Equal (t , 1 , changes .ResponseChanges ["200" ].TotalBreakingChanges ())
589+ }
590+
591+ func TestCompareResponses_V3_BreakingExtensionRemovalCounted (t * testing.T ) {
592+ low .ClearHashCache ()
593+
594+ left := `200:
595+ description: OK response
596+ x-summary: legacy summary`
597+
598+ right := `200:
599+ description: OK response`
600+
601+ var lNode , rNode yaml.Node
602+ _ = yaml .Unmarshal ([]byte (left ), & lNode )
603+ _ = yaml .Unmarshal ([]byte (right ), & rNode )
604+
605+ var lDoc v3.Responses
606+ var rDoc v3.Responses
607+ _ = low .BuildModel (lNode .Content [0 ], & lDoc )
608+ _ = low .BuildModel (rNode .Content [0 ], & rDoc )
609+ _ = lDoc .Build (context .Background (), nil , lNode .Content [0 ], nil )
610+ _ = rDoc .Build (context .Background (), nil , rNode .Content [0 ], nil )
611+
612+ changes := CompareResponses (& lDoc , & rDoc )
613+ assert .NotNil (t , changes )
614+ assert .Equal (t , 1 , changes .TotalChanges ())
615+ assert .Equal (t , 1 , changes .TotalBreakingChanges ())
616+ assert .NotNil (t , changes .ExtensionChanges )
617+ assert .Equal (t , 1 , changes .ExtensionChanges .TotalBreakingChanges ())
618+ }
0 commit comments