MCPcopy
hub / github.com/connectrpc/connect-go / TestGetNotModified

Function TestGetNotModified

client_ext_test.go:167–203  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

165}
166
167func TestGetNotModified(t *testing.T) {
168 t.Parallel()
169
170 const etag = "some-etag"
171 // Handlers should automatically set Vary to include request headers that are
172 // part of the RPC protocol.
173 expectVary := []string{"Accept-Encoding"}
174
175 mux := http.NewServeMux()
176 mux.Handle(pingv1connect.NewPingServiceHandler(&notModifiedPingServer{etag: etag}))
177 server := memhttptest.NewServer(t, mux)
178 client := pingv1connect.NewPingServiceClient(
179 server.Client(),
180 server.URL(),
181 connect.WithHTTPGet(),
182 )
183 ctx := t.Context()
184 // unconditional request
185 unaryReq := connect.NewRequest(&pingv1.PingRequest{})
186 res, err := client.Ping(ctx, unaryReq)
187 assert.Nil(t, err)
188 assert.Equal(t, res.Header().Get("Etag"), etag)
189 assert.Equal(t, res.Header().Values("Vary"), expectVary)
190 assert.Equal(t, http.MethodGet, unaryReq.HTTPMethod())
191
192 unaryReq = connect.NewRequest(&pingv1.PingRequest{})
193 unaryReq.Header().Set("If-None-Match", etag)
194 _, err = client.Ping(ctx, unaryReq)
195 assert.NotNil(t, err)
196 assert.Equal(t, connect.CodeOf(err), connect.CodeUnknown)
197 assert.True(t, connect.IsNotModifiedError(err))
198 var connectErr *connect.Error
199 assert.True(t, errors.As(err, &connectErr))
200 assert.Equal(t, connectErr.Meta().Get("Etag"), etag)
201 assert.Equal(t, connectErr.Meta().Values("Vary"), expectVary)
202 assert.Equal(t, http.MethodGet, unaryReq.HTTPMethod())
203}
204
205func TestGetNoContentHeaders(t *testing.T) {
206 t.Parallel()

Callers

nothing calls this directly

Calls 15

ClientMethod · 0.95
URLMethod · 0.95
PingMethod · 0.95
MetaMethod · 0.95
NewPingServiceHandlerFunction · 0.92
NewServerFunction · 0.92
NewPingServiceClientFunction · 0.92
WithHTTPGetFunction · 0.92
NewRequestFunction · 0.92
NilFunction · 0.92
EqualFunction · 0.92
NotNilFunction · 0.92

Tested by

no test coverage detected