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

Function TestGetDebug

enterprise/tailnet/pgcoord_internal_test.go:327–375  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

325}
326
327func TestGetDebug(t *testing.T) {
328 t.Parallel()
329
330 store, _ := dbtestutil.NewDB(t)
331 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
332 defer cancel()
333
334 coordID := uuid.New()
335 _, err := store.UpsertTailnetCoordinator(ctx, coordID)
336 require.NoError(t, err)
337
338 peerID := uuid.New()
339 node := &proto.Node{PreferredDerp: 44}
340 nodeb, err := gProto.Marshal(node)
341 require.NoError(t, err)
342 _, err = store.UpsertTailnetPeer(ctx, database.UpsertTailnetPeerParams{
343 ID: peerID,
344 CoordinatorID: coordID,
345 Node: nodeb,
346 Status: database.TailnetStatusLost,
347 })
348 require.NoError(t, err)
349
350 dstID := uuid.New()
351 _, err = store.UpsertTailnetTunnel(ctx, database.UpsertTailnetTunnelParams{
352 CoordinatorID: coordID,
353 SrcID: peerID,
354 DstID: dstID,
355 })
356 require.NoError(t, err)
357
358 debug, err := getDebug(ctx, store)
359 require.NoError(t, err)
360
361 require.Len(t, debug.Coordinators, 1)
362 require.Len(t, debug.Peers, 1)
363 require.Len(t, debug.Tunnels, 1)
364
365 require.Equal(t, coordID, debug.Coordinators[0].ID)
366
367 require.Equal(t, peerID, debug.Peers[0].ID)
368 require.Equal(t, coordID, debug.Peers[0].CoordinatorID)
369 require.Equal(t, database.TailnetStatusLost, debug.Peers[0].Status)
370 require.Equal(t, node.String(), debug.Peers[0].Node)
371
372 require.Equal(t, coordID, debug.Tunnels[0].CoordinatorID)
373 require.Equal(t, peerID, debug.Tunnels[0].SrcID)
374 require.Equal(t, dstID, debug.Tunnels[0].DstID)
375}
376
377// TestPGCoordinatorUnhealthy tests that when the coordinator fails to send heartbeats and is
378// unhealthy it disconnects any peers and does not send any extraneous database queries.

Callers

nothing calls this directly

Calls 10

StringMethod · 0.95
NewDBFunction · 0.92
getDebugFunction · 0.85
NewMethod · 0.65
UpsertTailnetPeerMethod · 0.65
UpsertTailnetTunnelMethod · 0.65
MarshalMethod · 0.45
LenMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected