Skip to content

Commit 7416224

Browse files
committed
Add unit tests for pkg/utils/healthz
1 parent 799ecab commit 7416224

File tree

2 files changed

+72
-0
lines changed

2 files changed

+72
-0
lines changed

pkg/utils/healthz/cache_test.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*
2+
Copyright 2025 Tim Ebert.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package healthz_test
18+
19+
import (
20+
"context"
21+
22+
. "github.com/onsi/ginkgo/v2"
23+
. "github.com/onsi/gomega"
24+
25+
. "github.com/timebertt/kubernetes-controller-sharding/pkg/utils/healthz"
26+
)
27+
28+
var _ = Describe("CacheSync", func() {
29+
It("should succeed if all informers sync", func() {
30+
checker := CacheSync(fakeSyncWaiter(true))
31+
Expect(checker(nil)).NotTo(HaveOccurred())
32+
})
33+
It("should fail if informers don't sync", func() {
34+
checker := CacheSync(fakeSyncWaiter(false))
35+
Expect(checker(nil)).To(MatchError(ContainSubstring("not synced")))
36+
})
37+
})
38+
39+
type fakeSyncWaiter bool
40+
41+
func (f fakeSyncWaiter) WaitForCacheSync(_ context.Context) bool {
42+
return bool(f)
43+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
Copyright 2025 Tim Ebert.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package healthz_test
18+
19+
import (
20+
"testing"
21+
22+
. "github.com/onsi/ginkgo/v2"
23+
. "github.com/onsi/gomega"
24+
)
25+
26+
func TestHealthz(t *testing.T) {
27+
RegisterFailHandler(Fail)
28+
RunSpecs(t, "Healthz Suite")
29+
}

0 commit comments

Comments
 (0)