Skip to content

Commit bfdcb2d

Browse files
webhook integration tests pass
1 parent e148316 commit bfdcb2d

File tree

1 file changed

+16
-43
lines changed

1 file changed

+16
-43
lines changed

test/integration/webhook/jobset_webhook_test.go

+16-43
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ import (
2222
"github.com/onsi/ginkgo/v2"
2323
"github.com/onsi/gomega"
2424
batchv1 "k8s.io/api/batch/v1"
25-
corev1 "k8s.io/api/core/v1"
26-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2725
"k8s.io/apimachinery/pkg/types"
2826

2927
jobset "sigs.k8s.io/jobset/api/v1alpha1"
@@ -35,36 +33,12 @@ const (
3533
interval = time.Millisecond * 250
3634
)
3735

38-
var _ = ginkgo.Describe("JobSet defaulting", func() {
39-
// Each test runs in a separate namespace.
40-
var ns *corev1.Namespace
36+
var _ = ginkgo.Describe("jobset webhook defaulting", func() {
4137

42-
ginkgo.BeforeEach(func() {
43-
// Create test namespace before each test.
44-
ns = &corev1.Namespace{
45-
ObjectMeta: metav1.ObjectMeta{
46-
GenerateName: "test-ns-",
47-
},
48-
}
49-
gomega.Expect(k8sClient.Create(ctx, ns)).To(gomega.Succeed())
50-
51-
// Wait for namespace to exist before proceeding with test.
52-
gomega.Eventually(func() bool {
53-
err := k8sClient.Get(ctx, types.NamespacedName{Namespace: ns.Namespace, Name: ns.Name}, ns)
54-
if err != nil {
55-
return false
56-
}
57-
return true
58-
}, timeout, interval).Should(gomega.BeTrue())
59-
})
60-
61-
ginkgo.AfterEach(func() {
62-
// Delete test namespace after each test.
63-
gomega.Expect(k8sClient.Delete(ctx, ns)).To(gomega.Succeed())
64-
})
38+
var ns string = "default"
6539

6640
type testCase struct {
67-
makeJobSet func(*corev1.Namespace) *testing.JobSetWrapper
41+
makeJobSet func() *testing.JobSetWrapper
6842
defaultsApplied func(*jobset.JobSet) bool
6943
}
7044

@@ -74,32 +48,31 @@ var _ = ginkgo.Describe("JobSet defaulting", func() {
7448

7549
// Create JobSet.
7650
ginkgo.By("creating jobset")
77-
js := tc.makeJobSet(ns).Obj()
51+
js := tc.makeJobSet().Obj()
7852

7953
// Verify jobset created successfully.
8054
ginkgo.By("checking that jobset creation succeeds")
8155
gomega.Expect(k8sClient.Create(ctx, js)).Should(gomega.Succeed())
8256

8357
// We'll need to retry getting this newly created jobset, given that creation may not immediately happen.
84-
gomega.Eventually(k8sClient.Get(ctx, types.NamespacedName{Name: js.Name, Namespace: js.Namespace}, js), timeout, interval).Should(gomega.Succeed())
58+
var fetchedJS jobset.JobSet
59+
gomega.Eventually(k8sClient.Get(ctx, types.NamespacedName{Name: js.Name, Namespace: js.Namespace}, &fetchedJS), timeout, interval).Should(gomega.Succeed())
8560

8661
// Check defaulting.
87-
if tc.defaultsApplied != nil {
88-
gomega.Expect(tc.defaultsApplied(js)).Should(gomega.Equal(true))
89-
}
62+
gomega.Expect(tc.defaultsApplied(&fetchedJS)).Should(gomega.Equal(true))
9063
},
9164
ginkgo.Entry("check job.spec.completionMode defaults to indexed if unset", &testCase{
92-
makeJobSet: func(ns *corev1.Namespace) *testing.JobSetWrapper {
93-
return testing.MakeJobSet("js-hostnames-non-indexed", ns.Name).
65+
makeJobSet: func() *testing.JobSetWrapper {
66+
return testing.MakeJobSet("js-hostnames-non-indexed", ns).
9467
ReplicatedJob(testing.MakeReplicatedJob("test-job").
95-
Job(testing.MakeJobTemplate("test-job", ns.Name).
68+
Job(testing.MakeJobTemplate("test-job", ns).
9669
PodSpec(testing.TestPodSpec).Obj()).
9770
EnableDNSHostnames(true).
9871
Obj())
9972
},
10073
defaultsApplied: func(js *jobset.JobSet) bool {
101-
mode := batchv1.IndexedCompletion
102-
return js.Spec.Jobs[0].Template.Spec.CompletionMode == &mode
74+
completionMode := js.Spec.Jobs[0].Template.Spec.CompletionMode
75+
return completionMode != nil && *completionMode == batchv1.IndexedCompletion
10376
},
10477
}),
10578
) // end of DescribeTable
@@ -108,14 +81,14 @@ var _ = ginkgo.Describe("JobSet defaulting", func() {
10881
// 2 replicated jobs:
10982
// - one with 1 replica
11083
// - one with 3 replicas and DNS hostnames enabled
111-
func testJobSet(ns *corev1.Namespace) *testing.JobSetWrapper {
112-
return testing.MakeJobSet("test-js", ns.Name).
84+
func testJobSet(ns string) *testing.JobSetWrapper {
85+
return testing.MakeJobSet("test-js", ns).
11386
ReplicatedJob(testing.MakeReplicatedJob("replicated-job-a").
114-
Job(testing.MakeJobTemplate("test-job-A", ns.Name).PodSpec(testing.TestPodSpec).Obj()).
87+
Job(testing.MakeJobTemplate("test-job-A", ns).PodSpec(testing.TestPodSpec).Obj()).
11588
Replicas(1).
11689
Obj()).
11790
ReplicatedJob(testing.MakeReplicatedJob("replicated-job-b").
118-
Job(testing.MakeJobTemplate("test-job-B", ns.Name).PodSpec(testing.TestPodSpec).CompletionMode(batchv1.IndexedCompletion).Obj()).
91+
Job(testing.MakeJobTemplate("test-job-B", ns).PodSpec(testing.TestPodSpec).CompletionMode(batchv1.IndexedCompletion).Obj()).
11992
EnableDNSHostnames(true).
12093
Replicas(3).
12194
Obj())

0 commit comments

Comments
 (0)