MCPcopy
hub / github.com/cortexlabs/cortex / TestHandlerSuccessHTTP

Function TestHandlerSuccessHTTP

pkg/probe/handler_test.go:80–142  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

78}
79
80func TestHandlerSuccessHTTP(t *testing.T) {
81 t.Parallel()
82
83 log := newLogger(t)
84 defer func() { _ = log.Sync() }()
85
86 headers := []kcore.HTTPHeader{
87 {
88 Name: "X-Cortex-Blah",
89 Value: "Blah",
90 },
91 }
92
93 var userHandler http.HandlerFunc = func(w http.ResponseWriter, r *http.Request) {
94 require.True(t, probe.IsRequestKubeletProbe(r))
95 for _, header := range headers {
96 require.Equal(t, header.Value, r.Header.Get(header.Name))
97 }
98
99 w.WriteHeader(http.StatusOK)
100 }
101 server := httptest.NewServer(userHandler)
102 targetURL, err := url.Parse(server.URL)
103 require.NoError(t, err)
104
105 pb := probe.NewProbe(
106 &kcore.Probe{
107 Handler: kcore.Handler{
108 HTTPGet: &kcore.HTTPGetAction{
109 Path: "/",
110 Port: intstr.FromString(targetURL.Port()),
111 Host: targetURL.Hostname(),
112 HTTPHeaders: headers,
113 },
114 },
115 TimeoutSeconds: 3,
116 PeriodSeconds: 1,
117 SuccessThreshold: 1,
118 FailureThreshold: 3,
119 }, log,
120 )
121 handler := generateHandler(pb)
122
123 r := httptest.NewRequest(http.MethodGet, "http://fake.cortex.dev/healthz", nil)
124 w := httptest.NewRecorder()
125
126 stopper := pb.StartProbing()
127 defer func() {
128 stopper <- struct{}{}
129 }()
130
131 for {
132 if pb.HasRunOnce() {
133 break
134 }
135 time.Sleep(time.Second)
136 }
137

Callers

nothing calls this directly

Calls 9

StartProbingMethod · 0.95
HasRunOnceMethod · 0.95
IsRequestKubeletProbeFunction · 0.92
NewProbeFunction · 0.92
generateHandlerFunction · 0.85
handlerFunction · 0.85
EqualMethod · 0.80
newLoggerFunction · 0.70
StringMethod · 0.45

Tested by

no test coverage detected