MCPcopy Index your code
hub / github.com/coder/coder / createUpdateService

Function createUpdateService

tailnet/service_test.go:318–361  ·  view source on GitHub ↗

nolint:revive // t takes precedence

(t *testing.T, ctx context.Context, clientID uuid.UUID, updates tailnet.WorkspaceUpdatesProvider)

Source from the content-addressed store, hash-verified

316
317//nolint:revive // t takes precedence
318func createUpdateService(t *testing.T, ctx context.Context, clientID uuid.UUID, updates tailnet.WorkspaceUpdatesProvider) (*tailnettest.FakeCoordinator, proto.DRPCTailnetClient) {
319 fCoord := tailnettest.NewFakeCoordinator()
320 var coord tailnet.Coordinator = fCoord
321 coordPtr := atomic.Pointer[tailnet.Coordinator]{}
322 coordPtr.Store(&coord)
323 logger := testutil.Logger(t)
324
325 uut, err := tailnet.NewClientService(tailnet.ClientServiceOptions{
326 Logger: logger,
327 CoordPtr: &coordPtr,
328 WorkspaceUpdatesProvider: updates,
329 })
330 require.NoError(t, err)
331
332 c, s := net.Pipe()
333 t.Cleanup(func() {
334 _ = c.Close()
335 _ = s.Close()
336 })
337
338 errCh := make(chan error, 1)
339 go func() {
340 err := uut.ServeClient(ctx, "2.0", s, tailnet.StreamID{
341 Name: "client",
342 ID: clientID,
343 Auth: tailnet.ClientUserCoordinateeAuth{
344 Auth: &fakeTunnelAuth{},
345 },
346 })
347 t.Logf("ServeClient returned; err=%v", err)
348 errCh <- err
349 }()
350
351 client, err := tailnet.NewDRPCClient(c, logger)
352 require.NoError(t, err)
353
354 t.Cleanup(func() {
355 err = c.Close()
356 require.NoError(t, err)
357 err = testutil.TryReceive(ctx, t, errCh)
358 require.True(t, xerrors.Is(err, io.EOF) || xerrors.Is(err, io.ErrClosedPipe))
359 })
360 return fCoord, client
361}
362
363type fakeTunnelAuth struct{}
364

Callers 2

TestWorkspaceUpdatesFunction · 0.85

Calls 11

ServeClientMethod · 0.95
NewFakeCoordinatorFunction · 0.92
LoggerFunction · 0.92
NewClientServiceFunction · 0.92
NewDRPCClientFunction · 0.92
TryReceiveFunction · 0.92
CleanupMethod · 0.65
CloseMethod · 0.65
LogfMethod · 0.65
StoreMethod · 0.45
IsMethod · 0.45

Tested by

no test coverage detected