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

Function TestBasicTelemetryController_Unimplemented

tailnet/controllers_test.go:679–734  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

677}
678
679func TestBasicTelemetryController_Unimplemented(t *testing.T) {
680 t.Parallel()
681 ctx := testutil.Context(t, testutil.WaitShort)
682 logger := testutil.Logger(t)
683
684 ft := newFakeTelemetryClient()
685
686 uut := tailnet.NewBasicTelemetryController(logger)
687 uut.New(ft)
688
689 // bad code, doesn't count
690 telemetryError := drpcerr.WithCode(xerrors.New("Unimplemented"), 0)
691
692 sendDone := make(chan struct{})
693 go func() {
694 defer close(sendDone)
695 uut.SendTelemetryEvent(&proto.TelemetryEvent{})
696 }()
697
698 call := testutil.TryReceive(ctx, t, ft.calls)
699 testutil.RequireSend(ctx, t, call.errCh, telemetryError)
700 testutil.TryReceive(ctx, t, sendDone)
701
702 sendDone = make(chan struct{})
703 go func() {
704 defer close(sendDone)
705 uut.SendTelemetryEvent(&proto.TelemetryEvent{})
706 }()
707
708 // we get another call since it wasn't really the Unimplemented error
709 call = testutil.TryReceive(ctx, t, ft.calls)
710
711 // for real this time
712 telemetryError = errUnimplemented
713 testutil.RequireSend(ctx, t, call.errCh, telemetryError)
714 testutil.TryReceive(ctx, t, sendDone)
715
716 // now this returns immediately without a call, because unimplemented error disables calling
717 sendDone = make(chan struct{})
718 go func() {
719 defer close(sendDone)
720 uut.SendTelemetryEvent(&proto.TelemetryEvent{})
721 }()
722 testutil.TryReceive(ctx, t, sendDone)
723
724 // getting a "new" client resets
725 uut.New(ft)
726 sendDone = make(chan struct{})
727 go func() {
728 defer close(sendDone)
729 uut.SendTelemetryEvent(&proto.TelemetryEvent{})
730 }()
731 call = testutil.TryReceive(ctx, t, ft.calls)
732 testutil.RequireSend(ctx, t, call.errCh, nil)
733 testutil.TryReceive(ctx, t, sendDone)
734}
735
736func TestBasicTelemetryController_NotRecognised(t *testing.T) {

Callers

nothing calls this directly

Calls 9

NewMethod · 0.95
SendTelemetryEventMethod · 0.95
ContextFunction · 0.92
LoggerFunction · 0.92
TryReceiveFunction · 0.92
RequireSendFunction · 0.92
newFakeTelemetryClientFunction · 0.85
NewMethod · 0.65

Tested by

no test coverage detected