diff --git a/rollbar.go b/rollbar.go index 7680c30..66fab61 100644 --- a/rollbar.go +++ b/rollbar.go @@ -99,6 +99,15 @@ func SetTelemetry(options ...OptionFunc) { std.SetTelemetry(options...) } +func DisableDefaultClient(destroy bool) { + if destroy { + std = nil + return + } + std.SetEnabled(false) + std.Close() +} + // CaptureTelemetryEvent sets the user-specified telemetry event func CaptureTelemetryEvent(eventType, eventlevel string, eventData map[string]interface{}) { std.CaptureTelemetryEvent(eventType, eventlevel, eventData) diff --git a/rollbar_closed_channel_test.go b/rollbar_closed_channel_test.go new file mode 100644 index 0000000..43a4dd3 --- /dev/null +++ b/rollbar_closed_channel_test.go @@ -0,0 +1,23 @@ +package rollbar + +import ( + "testing" +) + +func TestDisableDefaultClient(t *testing.T) { + defer func() { + std = NewAsync("", "development", "", hostname, "") + + }() + DisableDefaultClient(false) + err := std.push(map[string]interface{}{ + "data": map[string]interface{}{}, + }) + if err == nil { + t.Error("error should indicate that channel is closed") + } + DisableDefaultClient(true) + if std != nil { + t.Error("error should indicate that std is nil") + } +}