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

Function TestNodeUpdater_fillPeerDiagnostics

tailnet/node_internal_test.go:569–615  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

567}
568
569func TestNodeUpdater_fillPeerDiagnostics(t *testing.T) {
570 t.Parallel()
571 ctx := testutil.Context(t, testutil.WaitShort)
572 logger := testutil.Logger(t)
573 id := tailcfg.NodeID(1)
574 nodeKey := key.NewNode().Public()
575 discoKey := key.NewDisco().Public()
576 uut := newNodeUpdater(
577 logger,
578 func(n *Node) {},
579 id, nodeKey, discoKey,
580 )
581 defer uut.close()
582
583 // at start of day, filling diagnostics will not have derp and sentNode is false
584 d := PeerDiagnostics{}
585 uut.fillPeerDiagnostics(&d)
586 require.Equal(t, 0, d.PreferredDERP)
587 require.False(t, d.SentNode)
588
589 dl := map[string]float64{"1": 0.025}
590 uut.setNetInfo(&tailcfg.NetInfo{
591 PreferredDERP: 1,
592 DERPLatency: dl,
593 })
594
595 // after node callback, we should get the derp and SentNode is true.
596 // Use eventually since, there is a race between the callback completing
597 // and the test checking
598 require.Eventually(t, func() bool {
599 d := PeerDiagnostics{}
600 uut.fillPeerDiagnostics(&d)
601 // preferred DERP should be set right away, even if the callback is not
602 // complete.
603 if !assert.Equal(t, 1, d.PreferredDERP) {
604 return false
605 }
606 return d.SentNode
607 }, testutil.WaitShort, testutil.IntervalFast)
608
609 done := make(chan struct{})
610 go func() {
611 defer close(done)
612 uut.close()
613 }()
614 _ = testutil.TryReceive(ctx, t, done)
615}
616
617func TestNodeUpdater_fillPeerDiagnostics_noCallback(t *testing.T) {
618 t.Parallel()

Callers

nothing calls this directly

Calls 8

ContextFunction · 0.92
LoggerFunction · 0.92
TryReceiveFunction · 0.92
newNodeUpdaterFunction · 0.85
closeMethod · 0.65
fillPeerDiagnosticsMethod · 0.45
EqualMethod · 0.45
setNetInfoMethod · 0.45

Tested by

no test coverage detected