From f057587b94d175054de9788b7884fdbedb4d5fc9 Mon Sep 17 00:00:00 2001 From: Pawel Date: Thu, 22 Sep 2022 00:52:02 -0700 Subject: [PATCH] added the function to disable default client --- rollbar.go | 9 +++++++++ rollbar_closed_channel_test.go | 23 +++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 rollbar_closed_channel_test.go diff --git a/rollbar.go b/rollbar.go index e68270e..eb76ad8 100644 --- a/rollbar.go +++ b/rollbar.go @@ -95,6 +95,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") + } +}