MCPcopy
hub / github.com/cli/cli / TestServiceDisable

Function TestServiceDisable

internal/telemetry/telemetry_test.go:641–697  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

639}
640
641func TestServiceDisable(t *testing.T) {
642 t.Run("drops recorded events from flushed payload", func(t *testing.T) {
643 t.Cleanup(stubDeviceID("test-device"))
644
645 var captured SendTelemetryPayload
646 called := false
647 svc := newService(func(p SendTelemetryPayload) {
648 called = true
649 captured = p
650 }, nil)
651
652 svc.Record(ghtelemetry.Event{Type: "test"})
653 svc.Disable()
654 svc.Flush()
655
656 assert.True(t, called, "flusher should still be called so log mode can surface the absence of events")
657 assert.Empty(t, captured.Events, "recorded events should be dropped after Disable()")
658 })
659
660 t.Run("drops events even with multiple recorded events", func(t *testing.T) {
661 t.Cleanup(stubDeviceID("test-device"))
662
663 var captured SendTelemetryPayload
664 called := false
665 svc := newService(func(p SendTelemetryPayload) {
666 called = true
667 captured = p
668 }, nil)
669
670 svc.Record(ghtelemetry.Event{Type: "event1"})
671 svc.Record(ghtelemetry.Event{Type: "event2"})
672 svc.Record(ghtelemetry.Event{Type: "event3"})
673 svc.Disable()
674 svc.Flush()
675
676 assert.True(t, called, "flusher should still be called")
677 assert.Empty(t, captured.Events, "recorded events should be dropped after Disable()")
678 })
679
680 t.Run("can be called before any events are recorded", func(t *testing.T) {
681 t.Cleanup(stubDeviceID("test-device"))
682
683 var captured SendTelemetryPayload
684 called := false
685 svc := newService(func(p SendTelemetryPayload) {
686 called = true
687 captured = p
688 }, nil)
689
690 svc.Disable()
691 svc.Record(ghtelemetry.Event{Type: "test"})
692 svc.Flush()
693
694 assert.True(t, called, "flusher should still be called")
695 assert.Empty(t, captured.Events, "events recorded after Disable() should be dropped")
696 })
697}
698

Callers

nothing calls this directly

Calls 6

stubDeviceIDFunction · 0.85
newServiceFunction · 0.85
RunMethod · 0.65
RecordMethod · 0.65
DisableMethod · 0.65
FlushMethod · 0.65

Tested by

no test coverage detected