From 55baca8a469ba972093da82a3f4914bfc0249f17 Mon Sep 17 00:00:00 2001 From: Yongrui Lin Date: Fri, 1 May 2026 23:29:40 +0000 Subject: [PATCH] flowcontrol: cover Required rule for spec.type and limitResponse.type Add declarative-validation test cases for empty Spec.Type and empty LimitResponse.Type, closing the FieldValueRequired coverage gap reported for PriorityLevelConfiguration across v1, v1beta1, v1beta2, v1beta3. --- .../declarative_validation_test.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pkg/registry/flowcontrol/prioritylevelconfiguration/declarative_validation_test.go b/pkg/registry/flowcontrol/prioritylevelconfiguration/declarative_validation_test.go index d3af47834c2..e415b90a495 100644 --- a/pkg/registry/flowcontrol/prioritylevelconfiguration/declarative_validation_test.go +++ b/pkg/registry/flowcontrol/prioritylevelconfiguration/declarative_validation_test.go @@ -103,6 +103,18 @@ func testDeclarativeValidate(t *testing.T, apiVersion string) { field.Forbidden(specPath.Child("limited", "limitResponse", "queuing"), "").MarkCoveredByDeclarative().MarkAlpha(), }, }, + "spec.type: empty": { + input: mkPLC(tweakSpecType(""), tweakLimited(nil)), + expectedErrs: field.ErrorList{ + field.Required(specPath.Child("type"), "").MarkCoveredByDeclarative().MarkAlpha(), + }, + }, + "limitResponse.type: empty": { + input: mkPLC(tweakLimitResponseType("")), + expectedErrs: field.ErrorList{ + field.Required(specPath.Child("limited", "limitResponse", "type"), "").MarkCoveredByDeclarative().MarkAlpha(), + }, + }, } for name, tc := range testCases { @@ -226,6 +238,13 @@ func tweakLimited(limited *flowcontrol.LimitedPriorityLevelConfiguration) func(* } } +// tweakSpecType sets the Spec.Type field directly. +func tweakSpecType(t flowcontrol.PriorityLevelEnablement) func(*flowcontrol.PriorityLevelConfiguration) { + return func(obj *flowcontrol.PriorityLevelConfiguration) { + obj.Spec.Type = t + } +} + // tweakExemptConfig sets the Exempt configuration field. func tweakExemptConfig(exempt *flowcontrol.ExemptPriorityLevelConfiguration) func(*flowcontrol.PriorityLevelConfiguration) { return func(obj *flowcontrol.PriorityLevelConfiguration) {