Skip to content

Commit 92ec895

Browse files
committed
Split test cases for Required
1 parent 381d088 commit 92ec895

File tree

3 files changed

+99
-5
lines changed

3 files changed

+99
-5
lines changed

http/codegen/server_decode_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ func TestDecode(t *testing.T) {
151151
{"decode-body-user-nested", testdata.PayloadBodyNestedUserDSL, testdata.PayloadBodyNestedUserDecodeCode},
152152
{"decode-body-user-validate", testdata.PayloadBodyUserValidateDSL, testdata.PayloadBodyUserValidateDecodeCode},
153153
{"decode-body-object", testdata.PayloadBodyObjectDSL, testdata.PayloadBodyObjectDecodeCode},
154+
{"decode-body-object-required", testdata.PayloadBodyObjectRequiredDSL, testdata.PayloadBodyObjectRequiredDecodeCode},
154155
{"decode-body-object-validate", testdata.PayloadBodyObjectValidateDSL, testdata.PayloadBodyObjectValidateDecodeCode},
155156
{"decode-body-union", testdata.PayloadBodyUnionDSL, testdata.PayloadBodyUnionDecodeCode},
156157
{"decode-body-union-validate", testdata.PayloadBodyUnionValidateDSL, testdata.PayloadBodyUnionValidateDecodeCode},
@@ -170,6 +171,7 @@ func TestDecode(t *testing.T) {
170171
{"decode-body-primitive-array-string-validate", testdata.PayloadBodyPrimitiveArrayStringValidateDSL, testdata.PayloadBodyPrimitiveArrayStringValidateDecodeCode},
171172
{"decode-body-primitive-array-bool-validate", testdata.PayloadBodyPrimitiveArrayBoolValidateDSL, testdata.PayloadBodyPrimitiveArrayBoolValidateDecodeCode},
172173

174+
{"decode-body-primitive-array-user-required", testdata.PayloadBodyPrimitiveArrayUserRequiredDSL, testdata.PayloadBodyPrimitiveArrayUserRequiredDecodeCode},
173175
{"decode-body-primitive-array-user-validate", testdata.PayloadBodyPrimitiveArrayUserValidateDSL, testdata.PayloadBodyPrimitiveArrayUserValidateDecodeCode},
174176
{"decode-body-primitive-field-array-user", testdata.PayloadBodyPrimitiveFieldArrayUserDSL, testdata.PayloadBodyPrimitiveFieldArrayUserDecodeCode},
175177
{"decode-body-extend-primitive-field-array-user", testdata.PayloadExtendBodyPrimitiveFieldArrayUserDSL, testdata.PayloadBodyPrimitiveFieldArrayUserDecodeCode},

http/codegen/testdata/payload_decode_functions.go

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3917,6 +3917,34 @@ func DecodeMethodBodyObjectRequest(mux goahttp.Muxer, decoder func(*http.Request
39173917
}
39183918
`
39193919

3920+
var PayloadBodyObjectRequiredDecodeCode = `// DecodeMethodBodyObjectRequiredRequest returns a decoder for requests sent to
3921+
// the ServiceBodyObjectRequired MethodBodyObjectRequired endpoint.
3922+
func DecodeMethodBodyObjectRequiredRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (any, error) {
3923+
return func(r *http.Request) (any, error) {
3924+
var (
3925+
body struct {
3926+
B *string ` + "`" + `form:"b" json:"b" xml:"b"` + "`" + `
3927+
}
3928+
err error
3929+
)
3930+
err = decoder(r).Decode(&body)
3931+
if err != nil {
3932+
if err == io.EOF {
3933+
return nil, goa.MissingPayloadError()
3934+
}
3935+
var gerr *goa.ServiceError
3936+
if errors.As(err, &gerr) {
3937+
return nil, gerr
3938+
}
3939+
return nil, goa.DecodePayloadError(err.Error())
3940+
}
3941+
payload := NewMethodBodyObjectRequiredPayload(body)
3942+
3943+
return payload, nil
3944+
}
3945+
}
3946+
`
3947+
39203948
var PayloadBodyObjectValidateDecodeCode = `// DecodeMethodBodyObjectValidateRequest returns a decoder for requests sent to
39213949
// the ServiceBodyObjectValidate MethodBodyObjectValidate endpoint.
39223950
func DecodeMethodBodyObjectValidateRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (any, error) {
@@ -3938,6 +3966,12 @@ func DecodeMethodBodyObjectValidateRequest(mux goahttp.Muxer, decoder func(*http
39383966
}
39393967
return nil, goa.DecodePayloadError(err.Error())
39403968
}
3969+
if body.B != nil {
3970+
err = goa.MergeErrors(err, goa.ValidatePattern("body.b", *body.B, "pattern"))
3971+
}
3972+
if err != nil {
3973+
return nil, err
3974+
}
39413975
payload := NewMethodBodyObjectValidatePayload(body)
39423976
39433977
return payload, nil
@@ -4440,6 +4474,33 @@ func DecodeMethodBodyPrimitiveArrayBoolValidateRequest(mux goahttp.Muxer, decode
44404474
}
44414475
`
44424476

4477+
var PayloadBodyPrimitiveArrayUserRequiredDecodeCode = `// DecodeMethodBodyPrimitiveArrayUserRequiredRequest returns a decoder for
4478+
// requests sent to the ServiceBodyPrimitiveArrayUserRequired
4479+
// MethodBodyPrimitiveArrayUserRequired endpoint.
4480+
func DecodeMethodBodyPrimitiveArrayUserRequiredRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (any, error) {
4481+
return func(r *http.Request) (any, error) {
4482+
var (
4483+
body []*PayloadTypeRequestBody
4484+
err error
4485+
)
4486+
err = decoder(r).Decode(&body)
4487+
if err != nil {
4488+
if err == io.EOF {
4489+
return nil, goa.MissingPayloadError()
4490+
}
4491+
var gerr *goa.ServiceError
4492+
if errors.As(err, &gerr) {
4493+
return nil, gerr
4494+
}
4495+
return nil, goa.DecodePayloadError(err.Error())
4496+
}
4497+
payload := NewMethodBodyPrimitiveArrayUserRequiredPayloadType(body)
4498+
4499+
return payload, nil
4500+
}
4501+
}
4502+
`
4503+
44434504
var PayloadBodyPrimitiveArrayUserValidateDecodeCode = `// DecodeMethodBodyPrimitiveArrayUserValidateRequest returns a decoder for
44444505
// requests sent to the ServiceBodyPrimitiveArrayUserValidate
44454506
// MethodBodyPrimitiveArrayUserValidate endpoint.

http/codegen/testdata/payload_dsls.go

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1947,7 +1947,6 @@ var PayloadBodyStringValidateDSL = func() {
19471947
Attribute("b", String, func() {
19481948
Pattern("pattern")
19491949
})
1950-
Required("b")
19511950
})
19521951
HTTP(func() {
19531952
POST("/")
@@ -2039,9 +2038,9 @@ var PayloadBodyObjectDSL = func() {
20392038
})
20402039
}
20412040

2042-
var PayloadBodyObjectValidateDSL = func() {
2043-
Service("ServiceBodyObjectValidate", func() {
2044-
Method("MethodBodyObjectValidate", func() {
2041+
var PayloadBodyObjectRequiredDSL = func() {
2042+
Service("ServiceBodyObjectRequired", func() {
2043+
Method("MethodBodyObjectRequired", func() {
20452044
Payload(func() {
20462045
Attribute("b", String)
20472046
Required("b")
@@ -2057,6 +2056,24 @@ var PayloadBodyObjectValidateDSL = func() {
20572056
})
20582057
}
20592058

2059+
var PayloadBodyObjectValidateDSL = func() {
2060+
Service("ServiceBodyObjectValidate", func() {
2061+
Method("MethodBodyObjectValidate", func() {
2062+
Payload(func() {
2063+
Attribute("b", String, func() {
2064+
Pattern("pattern")
2065+
})
2066+
})
2067+
HTTP(func() {
2068+
POST("/")
2069+
Body(func() {
2070+
Attribute("b", String)
2071+
})
2072+
})
2073+
})
2074+
})
2075+
}
2076+
20602077
var PayloadBodyUnionDSL = func() {
20612078
var Union = Type("Union", func() {
20622079
OneOf("Values", func() {
@@ -2342,12 +2359,26 @@ var PayloadBodyPrimitiveArrayBoolValidateDSL = func() {
23422359
})
23432360
}
23442361

2362+
var PayloadBodyPrimitiveArrayUserRequiredDSL = func() {
2363+
var PayloadType = Type("PayloadType", func() {
2364+
Attribute("a", String)
2365+
Required("a")
2366+
})
2367+
Service("ServiceBodyPrimitiveArrayUserRequired", func() {
2368+
Method("MethodBodyPrimitiveArrayUserRequired", func() {
2369+
Payload(ArrayOf(PayloadType))
2370+
HTTP(func() {
2371+
POST("/")
2372+
})
2373+
})
2374+
})
2375+
}
2376+
23452377
var PayloadBodyPrimitiveArrayUserValidateDSL = func() {
23462378
var PayloadType = Type("PayloadType", func() {
23472379
Attribute("a", String, func() {
23482380
Pattern("pattern")
23492381
})
2350-
Required("a")
23512382
})
23522383
Service("ServiceBodyPrimitiveArrayUserValidate", func() {
23532384
Method("MethodBodyPrimitiveArrayUserValidate", func() {

0 commit comments

Comments
 (0)