From a75ff050b9a8cdbba06fcd4711314940817784a2 Mon Sep 17 00:00:00 2001 From: Dhairya-Arora01 Date: Thu, 1 Jun 2023 18:07:01 +0530 Subject: [PATCH] Validation for warnings in unit tests --- api/v1beta1/machine_webhook_test.go | 40 ++++++++++----- api/v1beta1/machinedeployment_webhook_test.go | 36 ++++++++----- .../machinehealthcheck_webhook_test.go | 51 ++++++++++++------- api/v1beta1/machineset_webhook_test.go | 27 ++++++---- .../api/v1beta1/kubeadmconfig_webhook_test.go | 12 +++-- .../kubeadmconfigtemplate_webhook_test.go | 6 ++- .../kubeadm_control_plane_webhook_test.go | 9 ++-- ...ubeadmcontrolplanetemplate_webhook_test.go | 6 ++- .../clusterresourceset_webhook_test.go | 20 +++++--- .../clusterresourcesetbinding_webhook_test.go | 9 ++-- exp/api/v1beta1/machinepool_webhook_test.go | 39 +++++++++----- exp/ipam/internal/webhooks/ipaddress_test.go | 3 +- .../internal/webhooks/ipaddressclaim_test.go | 6 ++- internal/webhooks/cluster_test.go | 16 ++++-- .../runtime/extensionconfig_webhook_test.go | 8 ++- .../dockerclustertemplate_webhook_test.go | 6 ++- .../dockermachinetemplate_webhook_test.go | 11 ++-- util/defaulting/defaulting.go | 9 ++-- 18 files changed, 212 insertions(+), 102 deletions(-) diff --git a/api/v1beta1/machine_webhook_test.go b/api/v1beta1/machine_webhook_test.go index 079ecb1e78eb..880db070ea8b 100644 --- a/api/v1beta1/machine_webhook_test.go +++ b/api/v1beta1/machine_webhook_test.go @@ -79,15 +79,19 @@ func TestMachineBootstrapValidation(t *testing.T) { Spec: MachineSpec{Bootstrap: tt.bootstrap}, } if tt.expectErr { - _, err := m.ValidateCreate() + warnings, err := m.ValidateCreate() g.Expect(err).To(HaveOccurred()) - _, err = m.ValidateUpdate(m) + g.Expect(warnings).To(BeEmpty()) + warnings, err = m.ValidateUpdate(m) g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { - _, err := m.ValidateCreate() + warnings, err := m.ValidateCreate() g.Expect(err).ToNot(HaveOccurred()) - _, err = m.ValidateUpdate(m) + g.Expect(warnings).To(BeEmpty()) + warnings, err = m.ValidateUpdate(m) g.Expect(err).ToNot(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } }) } @@ -141,15 +145,19 @@ func TestMachineNamespaceValidation(t *testing.T) { } if tt.expectErr { - _, err := m.ValidateCreate() + warnings, err := m.ValidateCreate() g.Expect(err).To(HaveOccurred()) - _, err = m.ValidateUpdate(m) + g.Expect(warnings).To(BeEmpty()) + warnings, err = m.ValidateUpdate(m) g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { - _, err := m.ValidateCreate() + warnings, err := m.ValidateCreate() g.Expect(err).ToNot(HaveOccurred()) - _, err = m.ValidateUpdate(m) + g.Expect(warnings).To(BeEmpty()) + warnings, err = m.ValidateUpdate(m) g.Expect(err).ToNot(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } }) } @@ -193,11 +201,13 @@ func TestMachineClusterNameImmutable(t *testing.T) { }, } - _, err := newMachine.ValidateUpdate(oldMachine) + warnings, err := newMachine.ValidateUpdate(oldMachine) if tt.expectErr { g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } }) } @@ -248,15 +258,19 @@ func TestMachineVersionValidation(t *testing.T) { } if tt.expectErr { - _, err := m.ValidateCreate() + warnings, err := m.ValidateCreate() g.Expect(err).To(HaveOccurred()) - _, err = m.ValidateUpdate(m) + g.Expect(warnings).To(BeEmpty()) + warnings, err = m.ValidateUpdate(m) g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { - _, err := m.ValidateCreate() + warnings, err := m.ValidateCreate() g.Expect(err).ToNot(HaveOccurred()) - _, err = m.ValidateUpdate(m) + g.Expect(warnings).To(BeEmpty()) + warnings, err = m.ValidateUpdate(m) g.Expect(err).ToNot(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } }) } diff --git a/api/v1beta1/machinedeployment_webhook_test.go b/api/v1beta1/machinedeployment_webhook_test.go index e5059601766f..fe4717d5be54 100644 --- a/api/v1beta1/machinedeployment_webhook_test.go +++ b/api/v1beta1/machinedeployment_webhook_test.go @@ -393,15 +393,19 @@ func TestMachineDeploymentValidation(t *testing.T) { }, } if tt.expectErr { - _, err := md.ValidateCreate() + warnings, err := md.ValidateCreate() g.Expect(err).To(HaveOccurred()) - _, err = md.ValidateUpdate(md) + g.Expect(warnings).To(BeEmpty()) + warnings, err = md.ValidateUpdate(md) g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { - _, err := md.ValidateCreate() + warnings, err := md.ValidateCreate() g.Expect(err).NotTo(HaveOccurred()) - _, err = md.ValidateUpdate(md) + g.Expect(warnings).To(BeEmpty()) + warnings, err = md.ValidateUpdate(md) g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } }) } @@ -456,15 +460,19 @@ func TestMachineDeploymentVersionValidation(t *testing.T) { } if tt.expectErr { - _, err := md.ValidateCreate() + warnings, err := md.ValidateCreate() g.Expect(err).To(HaveOccurred()) - _, err = md.ValidateUpdate(md) + g.Expect(warnings).To(BeEmpty()) + warnings, err = md.ValidateUpdate(md) g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { - _, err := md.ValidateCreate() + warnings, err := md.ValidateCreate() g.Expect(err).ToNot(HaveOccurred()) - _, err = md.ValidateUpdate(md) + g.Expect(warnings).To(BeEmpty()) + warnings, err = md.ValidateUpdate(md) g.Expect(err).ToNot(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } }) } @@ -507,12 +515,13 @@ func TestMachineDeploymentClusterNameImmutable(t *testing.T) { }, } - _, err := newMD.ValidateUpdate(oldMD) + warnings, err := newMD.ValidateUpdate(oldMD) if tt.expectErr { g.Expect(err).To(HaveOccurred()) } else { g.Expect(err).NotTo(HaveOccurred()) } + g.Expect(warnings).To(BeEmpty()) }) } } @@ -539,21 +548,24 @@ func defaultValidateTestCustomDefaulter(object admission.Validator, customDefaul t.Run("validate-on-create", func(t *testing.T) { g := NewWithT(t) g.Expect(customDefaulter.Default(ctx, createCopy)).To(Succeed()) - _, err := createCopy.ValidateCreate() + warnings, err := createCopy.ValidateCreate() g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) }) t.Run("validate-on-update", func(t *testing.T) { g := NewWithT(t) g.Expect(customDefaulter.Default(ctx, defaultingUpdateCopy)).To(Succeed()) g.Expect(customDefaulter.Default(ctx, updateCopy)).To(Succeed()) - _, err := defaultingUpdateCopy.ValidateUpdate(updateCopy) + warnings, err := defaultingUpdateCopy.ValidateUpdate(updateCopy) g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) }) t.Run("validate-on-delete", func(t *testing.T) { g := NewWithT(t) g.Expect(customDefaulter.Default(ctx, deleteCopy)).To(Succeed()) - _, err := deleteCopy.ValidateDelete() + warnings, err := deleteCopy.ValidateDelete() g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) }) } } diff --git a/api/v1beta1/machinehealthcheck_webhook_test.go b/api/v1beta1/machinehealthcheck_webhook_test.go index c1d5f69bc3ac..9738d1f9bdf8 100644 --- a/api/v1beta1/machinehealthcheck_webhook_test.go +++ b/api/v1beta1/machinehealthcheck_webhook_test.go @@ -92,15 +92,19 @@ func TestMachineHealthCheckLabelSelectorAsSelectorValidation(t *testing.T) { }, } if tt.expectErr { - _, err := mhc.ValidateCreate() + warnings, err := mhc.ValidateCreate() g.Expect(err).To(HaveOccurred()) - _, err = mhc.ValidateUpdate(mhc) + g.Expect(warnings).To(BeEmpty()) + warnings, err = mhc.ValidateUpdate(mhc) g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { - _, err := mhc.ValidateCreate() + warnings, err := mhc.ValidateCreate() g.Expect(err).NotTo(HaveOccurred()) - _, err = mhc.ValidateUpdate(mhc) + g.Expect(warnings).To(BeEmpty()) + warnings, err = mhc.ValidateUpdate(mhc) g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } }) } @@ -164,12 +168,13 @@ func TestMachineHealthCheckClusterNameImmutable(t *testing.T) { }, } - _, err := newMHC.ValidateUpdate(oldMHC) + warnings, err := newMHC.ValidateUpdate(oldMHC) if tt.expectErr { g.Expect(err).To(HaveOccurred()) } else { g.Expect(err).NotTo(HaveOccurred()) } + g.Expect(warnings).To(BeEmpty()) }) } } @@ -216,15 +221,19 @@ func TestMachineHealthCheckUnhealthyConditions(t *testing.T) { }, } if tt.expectErr { - _, err := mhc.ValidateCreate() + warnings, err := mhc.ValidateCreate() g.Expect(err).To(HaveOccurred()) - _, err = mhc.ValidateUpdate(mhc) + g.Expect(warnings).To(BeEmpty()) + warnings, err = mhc.ValidateUpdate(mhc) g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { - _, err := mhc.ValidateCreate() + warnings, err := mhc.ValidateCreate() g.Expect(err).NotTo(HaveOccurred()) - _, err = mhc.ValidateUpdate(mhc) + g.Expect(warnings).To(BeEmpty()) + warnings, err = mhc.ValidateUpdate(mhc) g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } }) } @@ -295,15 +304,19 @@ func TestMachineHealthCheckNodeStartupTimeout(t *testing.T) { } if tt.expectErr { - _, err := mhc.ValidateCreate() + warnings, err := mhc.ValidateCreate() g.Expect(err).To(HaveOccurred()) - _, err = mhc.ValidateUpdate(mhc) + g.Expect(warnings).To(BeEmpty()) + warnings, err = mhc.ValidateUpdate(mhc) g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { - _, err := mhc.ValidateCreate() + warnings, err := mhc.ValidateCreate() g.Expect(err).NotTo(HaveOccurred()) - _, err = mhc.ValidateUpdate(mhc) + g.Expect(warnings).To(BeEmpty()) + warnings, err = mhc.ValidateUpdate(mhc) g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } } } @@ -358,15 +371,19 @@ func TestMachineHealthCheckMaxUnhealthy(t *testing.T) { } if tt.expectErr { - _, err := mhc.ValidateCreate() + warnings, err := mhc.ValidateCreate() g.Expect(err).To(HaveOccurred()) - _, err = mhc.ValidateUpdate(mhc) + g.Expect(warnings).To(BeEmpty()) + warnings, err = mhc.ValidateUpdate(mhc) g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { - _, err := mhc.ValidateCreate() + warnings, err := mhc.ValidateCreate() g.Expect(err).NotTo(HaveOccurred()) - _, err = mhc.ValidateUpdate(mhc) + g.Expect(warnings).To(BeEmpty()) + warnings, err = mhc.ValidateUpdate(mhc) g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } } } diff --git a/api/v1beta1/machineset_webhook_test.go b/api/v1beta1/machineset_webhook_test.go index 32bcfc60b952..9753ee2d4ebf 100644 --- a/api/v1beta1/machineset_webhook_test.go +++ b/api/v1beta1/machineset_webhook_test.go @@ -106,15 +106,19 @@ func TestMachineSetLabelSelectorMatchValidation(t *testing.T) { } if tt.expectErr { - _, err := ms.ValidateCreate() + warnings, err := ms.ValidateCreate() g.Expect(err).To(HaveOccurred()) - _, err = ms.ValidateUpdate(ms) + g.Expect(warnings).To(BeEmpty()) + warnings, err = ms.ValidateUpdate(ms) g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { - _, err := ms.ValidateCreate() + warnings, err := ms.ValidateCreate() g.Expect(err).NotTo(HaveOccurred()) - _, err = ms.ValidateUpdate(ms) + g.Expect(warnings).To(BeEmpty()) + warnings, err = ms.ValidateUpdate(ms) g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } }) } @@ -157,12 +161,13 @@ func TestMachineSetClusterNameImmutable(t *testing.T) { }, } - _, err := newMS.ValidateUpdate(oldMS) + warnings, err := newMS.ValidateUpdate(oldMS) if tt.expectErr { g.Expect(err).To(HaveOccurred()) } else { g.Expect(err).NotTo(HaveOccurred()) } + g.Expect(warnings).To(BeEmpty()) }) } } @@ -215,15 +220,19 @@ func TestMachineSetVersionValidation(t *testing.T) { } if tt.expectErr { - _, err := md.ValidateCreate() + warnings, err := md.ValidateCreate() g.Expect(err).To(HaveOccurred()) - _, err = md.ValidateUpdate(md) + g.Expect(warnings).To(BeEmpty()) + warnings, err = md.ValidateUpdate(md) g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { - _, err := md.ValidateCreate() + warnings, err := md.ValidateCreate() g.Expect(err).NotTo(HaveOccurred()) - _, err = md.ValidateUpdate(md) + g.Expect(warnings).To(BeEmpty()) + warnings, err = md.ValidateUpdate(md) g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } }) } diff --git a/bootstrap/kubeadm/api/v1beta1/kubeadmconfig_webhook_test.go b/bootstrap/kubeadm/api/v1beta1/kubeadmconfig_webhook_test.go index f89b87a6ac82..eafa6d92812a 100644 --- a/bootstrap/kubeadm/api/v1beta1/kubeadmconfig_webhook_test.go +++ b/bootstrap/kubeadm/api/v1beta1/kubeadmconfig_webhook_test.go @@ -464,15 +464,19 @@ func TestKubeadmConfigValidate(t *testing.T) { g := NewWithT(t) if tt.expectErr { - _, err := tt.in.ValidateCreate() + warnings, err := tt.in.ValidateCreate() g.Expect(err).To(HaveOccurred()) - _, err = tt.in.ValidateUpdate(nil) + g.Expect(warnings).To(BeEmpty()) + warnings, err = tt.in.ValidateUpdate(nil) g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { - _, err := tt.in.ValidateCreate() + warnings, err := tt.in.ValidateCreate() g.Expect(err).NotTo(HaveOccurred()) - _, err = tt.in.ValidateUpdate(nil) + g.Expect(warnings).To(BeEmpty()) + warnings, err = tt.in.ValidateUpdate(nil) g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } }) } diff --git a/bootstrap/kubeadm/api/v1beta1/kubeadmconfigtemplate_webhook_test.go b/bootstrap/kubeadm/api/v1beta1/kubeadmconfigtemplate_webhook_test.go index 897858a10434..48629df6b7c7 100644 --- a/bootstrap/kubeadm/api/v1beta1/kubeadmconfigtemplate_webhook_test.go +++ b/bootstrap/kubeadm/api/v1beta1/kubeadmconfigtemplate_webhook_test.go @@ -68,10 +68,12 @@ func TestKubeadmConfigTemplateValidation(t *testing.T) { t.Run(name, func(t *testing.T) { g := NewWithT(t) - _, err := tt.in.ValidateCreate() + warnings, err := tt.in.ValidateCreate() g.Expect(err).NotTo(HaveOccurred()) - _, err = tt.in.ValidateUpdate(nil) + g.Expect(warnings).To(BeEmpty()) + warnings, err = tt.in.ValidateUpdate(nil) g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) }) } } diff --git a/controlplane/kubeadm/api/v1beta1/kubeadm_control_plane_webhook_test.go b/controlplane/kubeadm/api/v1beta1/kubeadm_control_plane_webhook_test.go index 86a4b62c1381..a0a03d1a87b6 100644 --- a/controlplane/kubeadm/api/v1beta1/kubeadm_control_plane_webhook_test.go +++ b/controlplane/kubeadm/api/v1beta1/kubeadm_control_plane_webhook_test.go @@ -248,12 +248,13 @@ func TestKubeadmControlPlaneValidateCreate(t *testing.T) { g := NewWithT(t) - _, err := tt.kcp.ValidateCreate() + warnings, err := tt.kcp.ValidateCreate() if tt.expectErr { g.Expect(err).To(HaveOccurred()) } else { g.Expect(err).NotTo(HaveOccurred()) } + g.Expect(warnings).To(BeEmpty()) }) } } @@ -1027,12 +1028,13 @@ func TestKubeadmControlPlaneValidateUpdate(t *testing.T) { g := NewWithT(t) - _, err := tt.kcp.ValidateUpdate(tt.before.DeepCopy()) + warnings, err := tt.kcp.ValidateUpdate(tt.before.DeepCopy()) if tt.expectErr { g.Expect(err).To(HaveOccurred()) } else { g.Expect(err).To(Succeed()) } + g.Expect(warnings).To(BeEmpty()) }) } } @@ -1232,7 +1234,7 @@ func TestKubeadmControlPlaneValidateUpdateAfterDefaulting(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { g := NewWithT(t) - _, err := tt.kcp.ValidateUpdate(tt.before.DeepCopy()) + warnings, err := tt.kcp.ValidateUpdate(tt.before.DeepCopy()) if tt.expectErr { g.Expect(err).To(HaveOccurred()) } else { @@ -1243,6 +1245,7 @@ func TestKubeadmControlPlaneValidateUpdateAfterDefaulting(t *testing.T) { g.Expect(tt.kcp.Spec.RolloutStrategy.RollingUpdate.MaxSurge.IntVal).To(Equal(int32(1))) g.Expect(tt.kcp.Spec.Replicas).To(Equal(pointer.Int32(1))) } + g.Expect(warnings).To(BeEmpty()) }) } } diff --git a/controlplane/kubeadm/api/v1beta1/kubeadmcontrolplanetemplate_webhook_test.go b/controlplane/kubeadm/api/v1beta1/kubeadmcontrolplanetemplate_webhook_test.go index b6b5c4e7f616..50abc7743a4d 100644 --- a/controlplane/kubeadm/api/v1beta1/kubeadmcontrolplanetemplate_webhook_test.go +++ b/controlplane/kubeadm/api/v1beta1/kubeadmcontrolplanetemplate_webhook_test.go @@ -79,8 +79,9 @@ func TestKubeadmControlPlaneTemplateValidationFeatureGateEnabled(t *testing.T) { }, }, } - _, err := kcpTemplate.ValidateCreate() + warnings, err := kcpTemplate.ValidateCreate() g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) }) } @@ -104,7 +105,8 @@ func TestKubeadmControlPlaneTemplateValidationFeatureGateDisabled(t *testing.T) }, }, } - _, err := kcpTemplate.ValidateCreate() + warnings, err := kcpTemplate.ValidateCreate() g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) }) } diff --git a/exp/addons/api/v1beta1/clusterresourceset_webhook_test.go b/exp/addons/api/v1beta1/clusterresourceset_webhook_test.go index 77f0fbcd5a53..b98ff5be1f6e 100644 --- a/exp/addons/api/v1beta1/clusterresourceset_webhook_test.go +++ b/exp/addons/api/v1beta1/clusterresourceset_webhook_test.go @@ -67,15 +67,19 @@ func TestClusterResourceSetLabelSelectorAsSelectorValidation(t *testing.T) { }, } if tt.expectErr { - _, err := clusterResourceSet.ValidateCreate() + warnings, err := clusterResourceSet.ValidateCreate() g.Expect(err).To(HaveOccurred()) - _, err = clusterResourceSet.ValidateUpdate(clusterResourceSet) + g.Expect(warnings).To(BeEmpty()) + warnings, err = clusterResourceSet.ValidateUpdate(clusterResourceSet) g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { - _, err := clusterResourceSet.ValidateCreate() + warnings, err := clusterResourceSet.ValidateCreate() g.Expect(err).NotTo(HaveOccurred()) - _, err = clusterResourceSet.ValidateUpdate(clusterResourceSet) + g.Expect(warnings).To(BeEmpty()) + warnings, err = clusterResourceSet.ValidateUpdate(clusterResourceSet) g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } }) } @@ -128,12 +132,14 @@ func TestClusterResourceSetStrategyImmutable(t *testing.T) { }, } - _, err := newClusterResourceSet.ValidateUpdate(oldClusterResourceSet) + warnings, err := newClusterResourceSet.ValidateUpdate(oldClusterResourceSet) if tt.expectErr { g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) return } g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) }) } } @@ -179,12 +185,14 @@ func TestClusterResourceSetClusterSelectorImmutable(t *testing.T) { }, } - _, err := newClusterResourceSet.ValidateUpdate(oldClusterResourceSet) + warnings, err := newClusterResourceSet.ValidateUpdate(oldClusterResourceSet) if tt.expectErr { g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) return } g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) }) } } diff --git a/exp/addons/api/v1beta1/clusterresourcesetbinding_webhook_test.go b/exp/addons/api/v1beta1/clusterresourcesetbinding_webhook_test.go index eacaf608e05a..e34ca5261c27 100644 --- a/exp/addons/api/v1beta1/clusterresourcesetbinding_webhook_test.go +++ b/exp/addons/api/v1beta1/clusterresourcesetbinding_webhook_test.go @@ -77,14 +77,17 @@ func TestClusterResourceSetBindingClusterNameImmutable(t *testing.T) { }, } - _, err := newClusterResourceSetBinding.ValidateCreate() + warnings, err := newClusterResourceSetBinding.ValidateCreate() g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) if tt.expectErr { - _, err = newClusterResourceSetBinding.ValidateUpdate(oldClusterResourceSetBinding) + warnings, err = newClusterResourceSetBinding.ValidateUpdate(oldClusterResourceSetBinding) g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { - _, err = newClusterResourceSetBinding.ValidateUpdate(oldClusterResourceSetBinding) + warnings, err = newClusterResourceSetBinding.ValidateUpdate(oldClusterResourceSetBinding) g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } }) } diff --git a/exp/api/v1beta1/machinepool_webhook_test.go b/exp/api/v1beta1/machinepool_webhook_test.go index 987750ee532d..c53172ed0948 100644 --- a/exp/api/v1beta1/machinepool_webhook_test.go +++ b/exp/api/v1beta1/machinepool_webhook_test.go @@ -101,15 +101,19 @@ func TestMachinePoolBootstrapValidation(t *testing.T) { } if tt.expectErr { - _, err := m.ValidateCreate() + warnings, err := m.ValidateCreate() g.Expect(err).To(HaveOccurred()) - _, err = m.ValidateUpdate(m) + g.Expect(warnings).To(BeEmpty()) + warnings, err = m.ValidateUpdate(m) g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { - _, err := m.ValidateCreate() + warnings, err := m.ValidateCreate() g.Expect(err).NotTo(HaveOccurred()) - _, err = m.ValidateUpdate(m) + g.Expect(warnings).To(BeEmpty()) + warnings, err = m.ValidateUpdate(m) g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } }) } @@ -173,15 +177,19 @@ func TestMachinePoolNamespaceValidation(t *testing.T) { } if tt.expectErr { - _, err := m.ValidateCreate() + warnings, err := m.ValidateCreate() g.Expect(err).To(HaveOccurred()) - _, err = m.ValidateUpdate(m) + g.Expect(warnings).To(BeEmpty()) + warnings, err = m.ValidateUpdate(m) g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { - _, err := m.ValidateCreate() + warnings, err := m.ValidateCreate() g.Expect(err).NotTo(HaveOccurred()) - _, err = m.ValidateUpdate(m) + g.Expect(warnings).To(BeEmpty()) + warnings, err = m.ValidateUpdate(m) g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } }) } @@ -237,12 +245,13 @@ func TestMachinePoolClusterNameImmutable(t *testing.T) { }, } - _, err := newMP.ValidateUpdate(oldMP) + warnings, err := newMP.ValidateUpdate(oldMP) if tt.expectErr { g.Expect(err).To(HaveOccurred()) } else { g.Expect(err).NotTo(HaveOccurred()) } + g.Expect(warnings).To(BeEmpty()) }) } } @@ -294,15 +303,19 @@ func TestMachinePoolVersionValidation(t *testing.T) { } if tt.expectErr { - _, err := m.ValidateCreate() + warnings, err := m.ValidateCreate() g.Expect(err).To(HaveOccurred()) - _, err = m.ValidateUpdate(m) + g.Expect(warnings).To(BeEmpty()) + warnings, err = m.ValidateUpdate(m) g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } else { - _, err := m.ValidateCreate() + warnings, err := m.ValidateCreate() g.Expect(err).NotTo(HaveOccurred()) - _, err = m.ValidateUpdate(m) + g.Expect(warnings).To(BeEmpty()) + warnings, err = m.ValidateUpdate(m) g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) } }) } diff --git a/exp/ipam/internal/webhooks/ipaddress_test.go b/exp/ipam/internal/webhooks/ipaddress_test.go index 9052181118e6..2e8e2e7399ef 100644 --- a/exp/ipam/internal/webhooks/ipaddress_test.go +++ b/exp/ipam/internal/webhooks/ipaddress_test.go @@ -222,12 +222,13 @@ func TestIPAddressValidateUpdate(t *testing.T) { wh := IPAddress{ Client: fake.NewClientBuilder().WithScheme(scheme).WithObjects(tt.extraObjs...).Build(), } - _, err := wh.ValidateUpdate(context.Background(), &tt.oldIP, &tt.newIP) + warnings, err := wh.ValidateUpdate(context.Background(), &tt.oldIP, &tt.newIP) if tt.expectErr { g.Expect(err).To(HaveOccurred()) } else { g.Expect(err).NotTo(HaveOccurred()) } + g.Expect(warnings).To(BeEmpty()) }) } } diff --git a/exp/ipam/internal/webhooks/ipaddressclaim_test.go b/exp/ipam/internal/webhooks/ipaddressclaim_test.go index dc338a64af60..9a3ddd91ff71 100644 --- a/exp/ipam/internal/webhooks/ipaddressclaim_test.go +++ b/exp/ipam/internal/webhooks/ipaddressclaim_test.go @@ -65,12 +65,13 @@ func TestIPAddressClaimValidateCreate(t *testing.T) { t.Run(tt.name, func(t *testing.T) { g := NewWithT(t) wh := IPAddressClaim{} - _, err := wh.ValidateCreate(context.Background(), &tt.claim) + warnings, err := wh.ValidateCreate(context.Background(), &tt.claim) if tt.expectErr { g.Expect(err).To(HaveOccurred()) } else { g.Expect(err).NotTo(HaveOccurred()) } + g.Expect(warnings).To(BeEmpty()) }) } } @@ -114,12 +115,13 @@ func TestIPAddressClaimValidateUpdate(t *testing.T) { t.Run(tt.name, func(t *testing.T) { g := NewWithT(t) wh := IPAddressClaim{} - _, err := wh.ValidateUpdate(context.Background(), &tt.oldClaim, &tt.newClaim) + warnings, err := wh.ValidateUpdate(context.Background(), &tt.oldClaim, &tt.newClaim) if tt.expectErr { g.Expect(err).To(HaveOccurred()) } else { g.Expect(err).NotTo(HaveOccurred()) } + g.Expect(warnings).To(BeEmpty()) }) } } diff --git a/internal/webhooks/cluster_test.go b/internal/webhooks/cluster_test.go index 9f0874509c5f..7218f9f70043 100644 --- a/internal/webhooks/cluster_test.go +++ b/internal/webhooks/cluster_test.go @@ -1268,12 +1268,14 @@ func TestClusterTopologyValidation(t *testing.T) { // Create the webhook and add the fakeClient as its client. This is required because the test uses a Managed Topology. webhook := &Cluster{Client: fakeClient} - _, err := webhook.validate(ctx, tt.old, tt.in) + warnings, err := webhook.validate(ctx, tt.old, tt.in) if tt.expectErr { g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) return } g.Expect(err).ToNot(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) }) } } @@ -1549,12 +1551,13 @@ func TestClusterTopologyValidationWithClient(t *testing.T) { c := &Cluster{Client: fakeClient} // Checks the return error. - _, err := c.ValidateCreate(ctx, tt.cluster) + warnings, err := c.ValidateCreate(ctx, tt.cluster) if tt.wantErr { g.Expect(err).To(HaveOccurred()) } else { g.Expect(err).NotTo(HaveOccurred()) } + g.Expect(warnings).To(BeEmpty()) }) } } @@ -1971,12 +1974,13 @@ func TestClusterTopologyValidationForTopologyClassChange(t *testing.T) { secondCluster.Spec.Topology.Class = tt.secondClass.Name // Checks the return error. - _, err := c.ValidateUpdate(ctx, cluster, secondCluster) + warnings, err := c.ValidateUpdate(ctx, cluster, secondCluster) if tt.wantErr { g.Expect(err).To(HaveOccurred()) } else { g.Expect(err).NotTo(HaveOccurred()) } + g.Expect(warnings).To(BeEmpty()) }) } } @@ -2093,12 +2097,13 @@ func TestMovingBetweenManagedAndUnmanaged(t *testing.T) { updatedCluster.Spec.Topology = tt.updatedTopology // Checks the return error. - _, err := c.ValidateUpdate(ctx, tt.cluster, updatedCluster) + warnings, err := c.ValidateUpdate(ctx, tt.cluster, updatedCluster) if tt.wantErr { g.Expect(err).To(HaveOccurred()) } else { g.Expect(err).NotTo(HaveOccurred()) } + g.Expect(warnings).To(BeEmpty()) }) } } @@ -2217,12 +2222,13 @@ func TestClusterClassPollingErrors(t *testing.T) { Build()} // Checks the return error. - _, err := c.validate(ctx, tt.oldCluster, tt.cluster) + warnings, err := c.validate(ctx, tt.oldCluster, tt.cluster) if tt.wantErr { g.Expect(err).To(HaveOccurred()) } else { g.Expect(err).ToNot(HaveOccurred()) } + g.Expect(warnings).To(BeEmpty()) }) } } diff --git a/internal/webhooks/runtime/extensionconfig_webhook_test.go b/internal/webhooks/runtime/extensionconfig_webhook_test.go index f0536aaf91e6..b6fbd0afefb6 100644 --- a/internal/webhooks/runtime/extensionconfig_webhook_test.go +++ b/internal/webhooks/runtime/extensionconfig_webhook_test.go @@ -95,12 +95,14 @@ func TestExtensionConfigValidationFeatureGated(t *testing.T) { defer utilfeature.SetFeatureGateDuringTest(t, feature.Gates, feature.RuntimeSDK, tt.featureGate)() webhook := ExtensionConfig{} g := NewWithT(t) - _, err := webhook.validate(context.TODO(), tt.old, tt.new) + warnings, err := webhook.validate(context.TODO(), tt.old, tt.new) if tt.expectErr { g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) return } g.Expect(err).ToNot(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) }) } } @@ -340,12 +342,14 @@ func TestExtensionConfigValidate(t *testing.T) { g.Expect(webhook.Default(ctx, tt.old)).To(Succeed()) } - _, err := webhook.validate(ctx, tt.old, tt.in) + warnings, err := webhook.validate(ctx, tt.old, tt.in) if tt.expectErr { g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) return } g.Expect(err).ToNot(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) }) } } diff --git a/test/infrastructure/docker/api/v1beta1/dockerclustertemplate_webhook_test.go b/test/infrastructure/docker/api/v1beta1/dockerclustertemplate_webhook_test.go index 95e38aecba59..bc5b148cbbca 100644 --- a/test/infrastructure/docker/api/v1beta1/dockerclustertemplate_webhook_test.go +++ b/test/infrastructure/docker/api/v1beta1/dockerclustertemplate_webhook_test.go @@ -42,8 +42,9 @@ func TestDockerClusterTemplateValidationFeatureGateEnabled(t *testing.T) { }, }, } - _, err := dct.ValidateCreate() + warnings, err := dct.ValidateCreate() g.Expect(err).NotTo(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) }) } @@ -62,7 +63,8 @@ func TestDockerClusterTemplateValidationFeatureGateDisabled(t *testing.T) { }, }, } - _, err := dct.ValidateCreate() + warnings, err := dct.ValidateCreate() g.Expect(err).To(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) }) } diff --git a/test/infrastructure/docker/api/v1beta1/dockermachinetemplate_webhook_test.go b/test/infrastructure/docker/api/v1beta1/dockermachinetemplate_webhook_test.go index 0e5d6422d3f8..b70fbfbd6ec0 100644 --- a/test/infrastructure/docker/api/v1beta1/dockermachinetemplate_webhook_test.go +++ b/test/infrastructure/docker/api/v1beta1/dockermachinetemplate_webhook_test.go @@ -20,6 +20,7 @@ import ( "context" "testing" + . "github.com/onsi/gomega" admissionv1 "k8s.io/api/admission/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/utils/pointer" @@ -86,15 +87,19 @@ func TestDockerMachineTemplateInvalid(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + g := NewWithT(t) wh := &DockerMachineTemplateWebhook{} ctx := context.Background() if tt.req != nil { ctx = admission.NewContextWithRequest(ctx, *tt.req) } - _, err := wh.ValidateUpdate(ctx, tt.oldTemplate, tt.newTemplate) - if (err != nil) != tt.wantError { - t.Errorf("unexpected result - wanted %+v, got %+v", tt.wantError, err) + warnings, err := wh.ValidateUpdate(ctx, tt.oldTemplate, tt.newTemplate) + if tt.wantError { + g.Expect(err).To(HaveOccurred()) + } else { + g.Expect(err).ToNot(HaveOccurred()) } + g.Expect(warnings).To(BeEmpty()) }) } } diff --git a/util/defaulting/defaulting.go b/util/defaulting/defaulting.go index 7436dc3ac9f6..6bfc8a0e119a 100644 --- a/util/defaulting/defaulting.go +++ b/util/defaulting/defaulting.go @@ -45,21 +45,24 @@ func DefaultValidateTest(object DefaultingValidator) func(*testing.T) { t.Run("validate-on-create", func(t *testing.T) { g := NewWithT(t) createCopy.Default() - _, err := createCopy.ValidateCreate() + warnings, err := createCopy.ValidateCreate() g.Expect(err).ToNot(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) }) t.Run("validate-on-update", func(t *testing.T) { g := NewWithT(t) defaultingUpdateCopy.Default() updateCopy.Default() - _, err := defaultingUpdateCopy.ValidateUpdate(updateCopy) + warnings, err := defaultingUpdateCopy.ValidateUpdate(updateCopy) g.Expect(err).ToNot(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) }) t.Run("validate-on-delete", func(t *testing.T) { g := NewWithT(t) deleteCopy.Default() - _, err := deleteCopy.ValidateDelete() + warnings, err := deleteCopy.ValidateDelete() g.Expect(err).ToNot(HaveOccurred()) + g.Expect(warnings).To(BeEmpty()) }) } }