MCPcopy Create free account
hub / github.com/Shopify/goose / TestUseModuleCombine

Function TestUseModuleCombine

srvutil/servlet_test.go:133–185  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

131}
132
133func TestUseModuleCombine(t *testing.T) {
134 s1 := HandlerServlet("/ok", h)
135 s1 = UseServlet(s1, func(next http.Handler) http.Handler {
136 return http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
137 res.Header().Set("foo", "bar")
138 next.ServeHTTP(res, req)
139 })
140 })
141
142 s2 := HandlerServlet("/ok2", h)
143 s2 = UseServlet(s2, func(next http.Handler) http.Handler {
144 return http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
145 res.Header().Set("foox", "barx")
146 next.ServeHTTP(res, req)
147 })
148 })
149
150 s2 = UseServlet(s2, func(next http.Handler) http.Handler {
151 return http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
152 res.Header().Set("fooz", "barz")
153 next.ServeHTTP(res, req)
154 })
155 })
156 s2 = PrefixServlet(s2, "/inner")
157
158 s := CombineServlets(s1, s2)
159 r := mux.NewRouter()
160 s.RegisterRouting(r)
161
162 {
163 res := httptest.NewRecorder()
164 req, err := http.NewRequest("GET", "/ok", nil)
165 assert.NoError(t, err)
166 r.ServeHTTP(res, req)
167
168 assert.Equal(t, "great success", res.Body.String())
169 assert.Equal(t, "bar", res.Header().Get("foo"), "s1 should have its middleware")
170 assert.Equal(t, "", res.Header().Get("foox"), "s1 should not inherit s2's middlewares")
171 assert.Equal(t, "", res.Header().Get("fooz"), "s1 should not inherit s2's middlewares")
172 }
173
174 {
175 res := httptest.NewRecorder()
176 req, err := http.NewRequest("GET", "/inner/ok2", nil)
177 assert.NoError(t, err)
178 r.ServeHTTP(res, req)
179
180 assert.Equal(t, "great success", res.Body.String())
181 assert.Equal(t, "", res.Header().Get("foo"), "s2 should not inherit s1's middleware")
182 assert.Equal(t, "barx", res.Header().Get("foox"), "s2 should have its middleware")
183 assert.Equal(t, "barz", res.Header().Get("fooz"), "s2 should have its middleware")
184 }
185}
186
187func TestCombineModules(t *testing.T) {
188 r := mux.NewRouter()

Callers

nothing calls this directly

Calls 10

HandlerServletFunction · 0.85
UseServletFunction · 0.85
PrefixServletFunction · 0.85
CombineServletsFunction · 0.85
HeaderMethod · 0.80
SetMethod · 0.65
RegisterRoutingMethod · 0.65
GetMethod · 0.65
ServeHTTPMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected