Skip to content

Commit

Permalink
Merge branch 'master' into test
Browse files Browse the repository at this point in the history
  • Loading branch information
herainman committed May 16, 2018
2 parents 71d3c94 + 2cbc2c3 commit 2a40057
Show file tree
Hide file tree
Showing 5 changed files with 75 additions and 9 deletions.
19 changes: 16 additions & 3 deletions codegen/template_bundle/template_files.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 15 additions & 2 deletions codegen/templates/tchannel_endpoint.tmpl
Expand Up @@ -93,8 +93,10 @@ func (h *{{$handlerName}}) Handle(
{{end}}

resHeaders := map[string]string{}
for _, key := range wfResHeaders.Keys() {
resHeaders[key], _ = wfResHeaders.Get(key)
if wfResHeaders != nil {
for _, key := range wfResHeaders.Keys() {
resHeaders[key], _ = wfResHeaders.Get(key)
}
}

{{if eq (len .Exceptions) 0 -}}
Expand Down Expand Up @@ -134,6 +136,17 @@ func (h *{{$handlerName}}) Handle(
{{end}}

{{- if .ResHeaders}}
if wfResHeaders == nil {
return false, nil, nil, errors.Wrapf(
errors.Errorf(
"Missing mandatory headers: %s",
strings.Join({{.ResHeaders | printf "%#v" }}, ", "),
),
"%s.%s (%s) missing response headers",
h.endpoint.EndpointID, h.endpoint.HandlerID, h.endpoint.Method,
)
}

if err := wfResHeaders.Ensure({{.ResHeaders | printf "%#v" }}, h.endpoint.Logger); err != nil {
return false, nil, nil, errors.Wrapf(
err, "%s.%s (%s) missing response headers",
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions examples/example-gateway/endpoints/tchannel/baz/baz_call.go
Expand Up @@ -80,5 +80,12 @@ func (w Workflow) Handle(
return respHeaders, err
}
}

if val, ok := clientReqHeaders["x-nil-response-header"]; ok {
if "true" == val {
return nil, nil
}
}

return respHeaders, nil
}
23 changes: 21 additions & 2 deletions examples/example-gateway/endpoints/tchannel/baz/baz_call_test.go
Expand Up @@ -18,8 +18,9 @@ func TestBazCall(t *testing.T) {

// fixtures
reqHeaders := map[string]string{
"x-token": "token",
"x-uuid": "uuid",
"x-token": "token",
"x-uuid": "uuid",
"x-nil-response-header": "false",
}
args := &baz.SimpleService_Call_Args{
Arg: &baz.BazRequest{
Expand All @@ -45,4 +46,22 @@ func TestBazCall(t *testing.T) {
}
assert.True(t, success)
assert.Equal(t, expectedHeaders, resHeaders)

reqHeaders = map[string]string{
"x-token": "token",
"x-uuid": "uuid",
"x-nil-response-header": "true",
}

ms.MockClients().Baz.EXPECT().Call(gomock.Any(), reqHeaders, gomock.Any()).
Return(map[string]string{"some-res-header": "something"}, nil)

success, resHeaders, err = ms.MakeTChannelRequest(
ctx, "SimpleService", "Call", reqHeaders, args, &result,
)
if !assert.Error(t, err, "got tchannel error") {
return
}
assert.False(t, success)
assert.Nil(t, resHeaders)
}

0 comments on commit 2a40057

Please sign in to comment.