Skip to content

Commit c3bc218

Browse files
committed
test: Add unit test for copilot_code_review rule
1 parent 7372df0 commit c3bc218

1 file changed

Lines changed: 55 additions & 0 deletions

File tree

github/util_rules_test.go

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)