From f1b582eb92b824d03852658725e3f613f3494128 Mon Sep 17 00:00:00 2001 From: Bryan Cox Date: Mon, 30 Mar 2026 06:11:07 -0400 Subject: [PATCH] fix(ci): configure Codecov PR comments and add unit tests - Set wait_for_ci: false so Codecov posts PR comments immediately instead of waiting for pending Prow e2e statuses that never resolve - Add per-file coverage diffs to PR comment layout - Add unit tests for String, GetRevision, and GetKubeVersionForSupportedVersion Co-Authored-By: Claude Opus 4.6 --- codecov.yml | 5 +- support/supportedversion/version_test.go | 58 ++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/codecov.yml b/codecov.yml index 24bd03dbeb2..977b510983f 100644 --- a/codecov.yml +++ b/codecov.yml @@ -1,5 +1,8 @@ codecov: branch: main + notify: + wait_for_ci: false comment: - layout: "condensed_header, diff, flags, components" + layout: "condensed_header, diff, files, flags, components" + behavior: default diff --git a/support/supportedversion/version_test.go b/support/supportedversion/version_test.go index e3cea91ade3..70262a0b1ad 100644 --- a/support/supportedversion/version_test.go +++ b/support/supportedversion/version_test.go @@ -28,6 +28,64 @@ func TestSupportedVersions(t *testing.T) { g.Expect(Supported()).To(Equal([]string{"4.22", "4.21", "4.20", "4.19", "4.18", "4.17", "4.16", "4.15", "4.14"})) } +func TestString(t *testing.T) { + g := NewGomegaWithT(t) + result := String() + g.Expect(result).To(ContainSubstring("openshift/hypershift:")) + g.Expect(result).To(ContainSubstring("Latest supported OCP:")) + g.Expect(result).To(ContainSubstring(LatestSupportedVersion.String())) +} + +func TestGetRevision(t *testing.T) { + g := NewGomegaWithT(t) + revision := GetRevision() + g.Expect(revision).ToNot(BeEmpty()) +} + +func TestGetKubeVersionForSupportedVersion(t *testing.T) { + testCases := []struct { + name string + ocpVersion string + expectedKubeVer string + expectErr bool + }{ + { + name: "When OCP 4.18 is provided it should return Kubernetes 1.31", + ocpVersion: "4.18.0", + expectedKubeVer: "1.31.0", + }, + { + name: "When OCP 4.14 is provided it should return Kubernetes 1.27", + ocpVersion: "4.14.0", + expectedKubeVer: "1.27.0", + }, + { + name: "When OCP 4.21 is provided it should return Kubernetes 1.34", + ocpVersion: "4.21.0", + expectedKubeVer: "1.34.0", + }, + { + name: "When an unmapped OCP version is provided it should return an error", + ocpVersion: "4.99.0", + expectErr: true, + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + g := NewGomegaWithT(t) + ver := semver.MustParse(tc.ocpVersion) + kubeVer, err := GetKubeVersionForSupportedVersion(ver) + if tc.expectErr { + g.Expect(err).To(HaveOccurred()) + } else { + g.Expect(err).ToNot(HaveOccurred()) + g.Expect(kubeVer.String()).To(Equal(tc.expectedKubeVer)) + } + }) + } +} + func TestIsValidReleaseVersion(t *testing.T) { v := func(str string) *semver.Version { result := semver.MustParse(str)