Files
kandev/apps/backend/internal/github/mock_client_merge_test.go
T

37 lines
1.2 KiB
Go

package github
import (
"context"
"strings"
"testing"
)
func TestMockClientMergePRRecordsExpectedHeadAndRejectsMismatch(t *testing.T) {
client := NewMockClient()
client.AddPR(&PR{RepoOwner: "acme", RepoName: "demo", Number: 42, HeadSHA: "head-current"})
_, err := client.MergePR(context.Background(), "acme", "demo", 42, MergePRRequest{
MergeMethod: "squash", ExpectedHeadSHA: "head-reviewed",
})
if err == nil || !strings.Contains(err.Error(), "head") {
t.Fatalf("head mismatch error = %v, want head diagnostic", err)
}
attempts := client.MergedPRs()
if len(attempts) != 1 || attempts[0].ExpectedHeadSHA != "head-reviewed" {
t.Fatalf("attempts = %+v, want reviewed head", attempts)
}
}
func TestMockClientMergePRReturnsConfiguredFailure(t *testing.T) {
client := NewMockClient()
client.AddPR(&PR{RepoOwner: "acme", RepoName: "demo", Number: 42, HeadSHA: "head-current"})
client.SetMergeFailure("acme", "demo", 42, "provider unavailable")
_, err := client.MergePR(context.Background(), "acme", "demo", 42, MergePRRequest{
MergeMethod: "squash", ExpectedHeadSHA: "head-current",
})
if err == nil || !strings.Contains(err.Error(), "provider unavailable") {
t.Fatalf("configured failure = %v, want provider diagnostic", err)
}
}