MCPcopy
hub / github.com/yusing/godoxy / TestReverseProxyRoute

Function TestReverseProxyRoute

internal/route/reverse_proxy_test.go:170–271  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

168}
169
170func TestReverseProxyRoute(t *testing.T) {
171 t.Run("LinkToLoadBalancer", func(t *testing.T) {
172 testTask := task.GetTestTask(t)
173 entrypoint.SetCtx(testTask, newTestEntrypoint())
174
175 cfg := Route{
176 Alias: "test",
177 Scheme: route.SchemeHTTP,
178 Host: "example.com",
179 Port: Port{Proxy: 80},
180 LoadBalance: &types.LoadBalancerConfig{
181 Link: "test",
182 },
183 }
184 cfg1 := Route{
185 Alias: "test1",
186 Scheme: route.SchemeHTTP,
187 Host: "example.com",
188 Port: Port{Proxy: 80},
189 LoadBalance: &types.LoadBalancerConfig{
190 Link: "test",
191 },
192 }
193 r, err := NewStartedTestRoute(t, &cfg)
194 require.NoError(t, err)
195 assert.NotNil(t, r)
196 r2, err := NewStartedTestRoute(t, &cfg1)
197 require.NoError(t, err)
198 assert.NotNil(t, r2)
199 })
200 t.Run("LoadBalancerRoute", func(t *testing.T) {
201 testTask := task.GetTestTask(t)
202 entrypoint.SetCtx(testTask, newTestEntrypoint())
203
204 newServer := func() *httptest.Server {
205 return httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
206 w.WriteHeader(http.StatusOK)
207 }))
208 }
209
210 srv1 := newServer()
211 t.Cleanup(srv1.Close)
212 srv2 := newServer()
213 t.Cleanup(srv2.Close)
214 srv3 := newServer()
215 t.Cleanup(srv3.Close)
216
217 makeRoute := func(alias string, target *httptest.Server) *Route {
218 t.Helper()
219
220 targetURL, err := url.Parse(target.URL)
221 require.NoError(t, err)
222
223 host, portStr, err := net.SplitHostPort(targetURL.Host)
224 require.NoError(t, err)
225 port, err := strconv.Atoi(portStr)
226 require.NoError(t, err)
227

Callers

nothing calls this directly

Calls 10

newTestEntrypointFunction · 0.85
NewStartedTestRouteFunction · 0.85
ContextMethod · 0.65
GetMethod · 0.65
HTTPRoutesMethod · 0.65
ShouldExcludeMethod · 0.65
HealthMonitorMethod · 0.65
DetailMethod · 0.65
WriteHeaderMethod · 0.45
ParseMethod · 0.45

Tested by

no test coverage detected