MCPcopy Create free account
hub / github.com/coder/coder / TestWebsocketDialer_UplevelVersion

Function TestWebsocketDialer_UplevelVersion

codersdk/workspacesdk/dialer_test.go:313–354  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

311}
312
313func TestWebsocketDialer_UplevelVersion(t *testing.T) {
314 t.Parallel()
315 ctx := testutil.Context(t, testutil.WaitShort)
316 logger := slogtest.Make(t, &slogtest.Options{IgnoreErrors: true}).Leveled(slog.LevelDebug)
317
318 svr := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
319 sVer := apiversion.New(2, 2)
320
321 // the following matches what Coderd does;
322 // c.f. coderd/workspaceagents.go: workspaceAgentClientCoordinate
323 cVer := r.URL.Query().Get("version")
324 if err := sVer.Validate(cVer); err != nil {
325 httpapi.Write(ctx, w, http.StatusBadRequest, codersdk.Response{
326 Message: workspacesdk.AgentAPIMismatchMessage,
327 Validations: []codersdk.ValidationError{
328 {Field: "version", Detail: err.Error()},
329 },
330 })
331 return
332 }
333 }))
334 svrURL, err := url.Parse(svr.URL)
335 require.NoError(t, err)
336
337 uut := workspacesdk.NewWebsocketDialer(
338 logger, svrURL, &websocket.DialOptions{},
339 workspacesdk.WithWorkspaceUpdates(&tailnetproto.WorkspaceUpdatesRequest{}),
340 )
341
342 errCh := make(chan error, 1)
343 go func() {
344 _, err := uut.Dial(ctx, nil)
345 errCh <- err
346 }()
347
348 err = testutil.TryReceive(ctx, t, errCh)
349 var sdkErr *codersdk.Error
350 require.ErrorAs(t, err, &sdkErr)
351 require.Equal(t, http.StatusBadRequest, sdkErr.StatusCode())
352 require.Equal(t, workspacesdk.AgentAPIMismatchMessage, sdkErr.Message)
353 require.NotEmpty(t, sdkErr.Helper)
354}
355
356func TestWebsocketDialer_WorkspaceUpdates(t *testing.T) {
357 t.Parallel()

Callers

nothing calls this directly

Calls 14

DialMethod · 0.95
StatusCodeMethod · 0.95
ContextFunction · 0.92
NewFunction · 0.92
WriteFunction · 0.92
NewWebsocketDialerFunction · 0.92
WithWorkspaceUpdatesFunction · 0.92
TryReceiveFunction · 0.92
NotEmptyMethod · 0.80
GetMethod · 0.65
ValidateMethod · 0.65
ParseMethod · 0.65

Tested by

no test coverage detected