diff --git a/hack/tools/release/notes/list_test.go b/hack/tools/release/notes/list_test.go index 688abc9a1c0e..c5848e236d9f 100644 --- a/hack/tools/release/notes/list_test.go +++ b/hack/tools/release/notes/list_test.go @@ -65,3 +65,134 @@ func Test_buildSetOfPRNumbers(t *testing.T) { }) } } + +func Test_githubFromToPRLister_listPRs(t *testing.T) { + tests := []struct { + name string + fields *githubFromToPRLister + args ref + wantErr bool + }{ + { + name: "Successful PR Listing", + fields: &githubFromToPRLister{ + client: &githubClient{ + repo: "kubernetes-sigs/kind", + }, + fromRef: ref{ + reType: "tags", + value: "v0.26.0", + }, + toRef: ref{ + reType: "tags", + value: "v0.27.0", + }, + branch: "main", + }, + args: ref{ + reType: "tags", + value: "v0.26.0", + }, + wantErr: false, + }, + { + name: "Setting previousReleaseRef.value blank - should use toRef and fromRef from fields", + fields: &githubFromToPRLister{ + client: &githubClient{ + repo: "kubernetes-sigs/kind", + }, + fromRef: ref{ + reType: "tags", + value: "v0.26.0", + }, + toRef: ref{ + reType: "tags", + value: "v0.27.0", + }, + branch: "main", + }, + args: ref{ + reType: "tags", + value: "", + }, + wantErr: false, + }, + { + name: "Create PR List when fromRef is not set", + fields: &githubFromToPRLister{ + client: &githubClient{ + repo: "kubernetes-sigs/kind", + }, + toRef: ref{ + reType: "tags", + value: "v0.27.0", + }, + branch: "main", + }, + args: ref{ + reType: "tags", + value: "v0.26.0", + }, + wantErr: false, + }, + { + name: "Fail when previousReleaseRef.value is set to invalid", + fields: &githubFromToPRLister{ + client: &githubClient{ + repo: "kubernetes-sigs/kind", + }, + fromRef: ref{ + reType: "tags", + value: "v0.26.0", + }, + toRef: ref{ + reType: "tags", + value: "v0.27.0", + }, + branch: "main", + }, + args: ref{ + reType: "tags", + value: "invalid", + }, + wantErr: true, + }, + { + name: "Fail when toRef and previousReleaseRef set blank", + fields: &githubFromToPRLister{ + client: &githubClient{ + repo: "kubernetes-sigs/kind", + }, + fromRef: ref{ + reType: "tags", + value: "v0.26.0", + }, + toRef: ref{ + reType: "tags", + value: "", + }, + branch: "main", + }, + args: ref{ + reType: "tags", + value: "", + }, + wantErr: true, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + l := &githubFromToPRLister{ + client: tt.fields.client, + fromRef: tt.fields.fromRef, + toRef: tt.fields.toRef, + branch: tt.fields.branch, + } + _, err := l.listPRs(tt.args) + if (err != nil) != tt.wantErr { + t.Errorf("githubFromToPRLister.listPRs() error = %v, wantErr %v", err, tt.wantErr) + return + } + }) + } +}