@@ -37,7 +37,7 @@ import (
3737
3838var _ = Describe ("Defaulter Handler" , func () {
3939
40- It ("should remove unknown fields when DefaulterRemoveUnknownFields is passed" , func (ctx SpecContext ) {
40+ It ("should remove unknown fields when DefaulterRemoveUnknownFields is passed and some fields are defaulted " , func (ctx SpecContext ) {
4141 obj := & TestDefaulter {}
4242 handler := WithCustomDefaulter (admissionScheme , obj , & TestCustomDefaulter {}, DefaulterRemoveUnknownOrOmitableFields )
4343
@@ -74,6 +74,29 @@ var _ = Describe("Defaulter Handler", func() {
7474 Expect (resp .Result .Code ).Should (Equal (int32 (http .StatusOK )))
7575 })
7676
77+ It ("should remove unknown fields when DefaulterRemoveUnknownFields is passed and no fields are defaulted" , func (ctx SpecContext ) {
78+ obj := & TestDefaulter {}
79+ handler := WithCustomDefaulter (admissionScheme , obj , & TestCustomDefaulter {}, DefaulterRemoveUnknownOrOmitableFields )
80+
81+ resp := handler .Handle (ctx , Request {
82+ AdmissionRequest : admissionv1.AdmissionRequest {
83+ Operation : admissionv1 .Create ,
84+ Object : runtime.RawExtension {
85+ Raw : []byte (`{"labels":{"foo": "bar"}, "replica": 2, "totalReplicas":0}` ),
86+ },
87+ },
88+ })
89+ Expect (resp .Allowed ).Should (BeTrue ())
90+ Expect (resp .Patches ).To (HaveLen (1 ))
91+ Expect (resp .Patches ).To (ContainElements (
92+ jsonpatch.JsonPatchOperation {
93+ Operation : "remove" ,
94+ Path : "/totalReplicas" ,
95+ },
96+ ))
97+ Expect (resp .Result .Code ).Should (Equal (int32 (http .StatusOK )))
98+ })
99+
77100 It ("should preserve unknown fields by default" , func (ctx SpecContext ) {
78101 obj := & TestDefaulter {}
79102 handler := WithCustomDefaulter (admissionScheme , obj , & TestCustomDefaulter {})
0 commit comments