@@ -418,3 +418,58 @@ func TestCompletePushRulesetSupport(t *testing.T) {
418418 t .Errorf ("Expected 3 restricted file extensions, got %d" , len (restrictedExts ))
419419 }
420420}
421+
422+ func TestCopilotCodeReviewRoundTrip (t * testing.T ) {
423+ // Test that copilot_code_review rule survives expand -> flatten round trip
424+ rulesMap := map [string ]any {
425+ "copilot_code_review" : []any {
426+ map [string ]any {
427+ "review_on_push" : true ,
428+ "review_draft_pull_requests" : false ,
429+ },
430+ },
431+ }
432+
433+ input := []any {rulesMap }
434+
435+ // Expand to GitHub API format
436+ expandedRules := expandRules (input , false )
437+
438+ if expandedRules == nil {
439+ t .Fatal ("Expected expandedRules to not be nil" )
440+ }
441+
442+ if expandedRules .CopilotCodeReview == nil {
443+ t .Fatal ("Expected CopilotCodeReview rule to be set" )
444+ }
445+
446+ if expandedRules .CopilotCodeReview .ReviewOnPush != true {
447+ t .Errorf ("Expected ReviewOnPush to be true, got %v" , expandedRules .CopilotCodeReview .ReviewOnPush )
448+ }
449+
450+ if expandedRules .CopilotCodeReview .ReviewDraftPullRequests != false {
451+ t .Errorf ("Expected ReviewDraftPullRequests to be false, got %v" , expandedRules .CopilotCodeReview .ReviewDraftPullRequests )
452+ }
453+
454+ // Flatten back to terraform format
455+ flattenedResult := flattenRules (expandedRules , false )
456+
457+ if len (flattenedResult ) != 1 {
458+ t .Fatalf ("Expected 1 flattened result, got %d" , len (flattenedResult ))
459+ }
460+
461+ flattenedRulesMap := flattenedResult [0 ].(map [string ]any )
462+ copilotRules := flattenedRulesMap ["copilot_code_review" ].([]map [string ]any )
463+
464+ if len (copilotRules ) != 1 {
465+ t .Fatalf ("Expected 1 copilot_code_review rule after round trip, got %d" , len (copilotRules ))
466+ }
467+
468+ if copilotRules [0 ]["review_on_push" ] != true {
469+ t .Errorf ("Expected review_on_push to be true, got %v" , copilotRules [0 ]["review_on_push" ])
470+ }
471+
472+ if copilotRules [0 ]["review_draft_pull_requests" ] != false {
473+ t .Errorf ("Expected review_draft_pull_requests to be false, got %v" , copilotRules [0 ]["review_draft_pull_requests" ])
474+ }
475+ }
0 commit comments