Skip to content

Commit 0211530

Browse files
author
Pawel Szczodruch
committed
final tests, making it right for scrub headers
1 parent 336c571 commit 0211530

File tree

4 files changed

+31
-11
lines changed

4 files changed

+31
-11
lines changed

client.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func NewAsync(token, environment, codeVersion, serverHost, serverRoot string) *C
4242
diagnostic := createDiagnostic()
4343
return &Client{
4444
Transport: transport,
45-
Telemetry: NewTelemetry(),
45+
Telemetry: NewTelemetry(nil),
4646
configuration: configuration,
4747
diagnostic: diagnostic,
4848
}
@@ -55,7 +55,7 @@ func NewSync(token, environment, codeVersion, serverHost, serverRoot string) *Cl
5555
diagnostic := createDiagnostic()
5656
return &Client{
5757
Transport: transport,
58-
Telemetry: NewTelemetry(),
58+
Telemetry: NewTelemetry(nil),
5959
configuration: configuration,
6060
diagnostic: diagnostic,
6161
}
@@ -75,7 +75,7 @@ func (c *Client) CaptureTelemetryEvent(eventType, eventlevel string, eventData m
7575

7676
// SetTelemetry sets the telemetry
7777
func (c *Client) SetTelemetry(options ...OptionFunc) {
78-
c.Telemetry = NewTelemetry(options...)
78+
c.Telemetry = NewTelemetry(c.configuration.scrubHeaders, options...)
7979
}
8080

8181
// SetEnabled sets whether or not Rollbar is enabled.

client_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,7 @@ func testGettersAndSetters(client *rollbar.Client, t *testing.T) {
465465
client.SetScrubHeaders(scrubHeaders)
466466
client.SetScrubFields(scrubFields)
467467
client.SetCaptureIp(captureIP)
468+
client.SetTelemetry()
468469

469470
client.SetEnabled(true)
470471

@@ -680,6 +681,23 @@ func TestEnabled(t *testing.T) {
680681
}
681682
}
682683

684+
func TestCaptureTelemetryEvent(t *testing.T) {
685+
client := testClient()
686+
data := map[string]interface{}{"message": "some message"}
687+
client.CaptureTelemetryEvent("eventType", "eventLevel", data)
688+
items := client.Telemetry.GetQueueItems()
689+
if len(items) < 1 {
690+
t.Error("Queue should not be empty")
691+
}
692+
item := items[0].(map[string]interface{})
693+
delete(item, "timestamp_ms")
694+
expectedData := map[string]interface{}{"body": data, "type": "eventType", "level": "eventLevel", "source": "client"}
695+
eq := reflect.DeepEqual(item, expectedData)
696+
if !eq {
697+
t.Error("Maps are different")
698+
}
699+
}
700+
683701
func configuredOptionsFromData(data map[string]interface{}) map[string]interface{} {
684702
notifier := data["notifier"].(map[string]interface{})
685703
diagnostic := notifier["diagnostic"].(map[string]interface{})

telemetry.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@ func EnableLoggerTelemetry() OptionFunc {
152152
}
153153
}
154154

155-
// NewTelemetry initializes telemetry object
156-
func NewTelemetry(options ...OptionFunc) *Telemetry {
155+
// NewTelemetry initializes telemetry object with scrubheader
156+
func NewTelemetry(scrubHeaders *regexp.Regexp, options ...OptionFunc) *Telemetry {
157157
res := &Telemetry{
158158
Queue: NewQueue(TelemetryQueueSize),
159159
}
@@ -162,8 +162,10 @@ func NewTelemetry(options ...OptionFunc) *Telemetry {
162162
opt(res)
163163
}
164164

165-
if res.Network.ScrubHeaders == nil { // set/define only once
165+
if scrubHeaders == nil {
166166
res.Network.ScrubHeaders = regexp.MustCompile("Authorization")
167+
} else {
168+
res.Network.ScrubHeaders = scrubHeaders
167169
}
168170

169171
return res

telemetry_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414
)
1515

1616
func TestNewTelemetryDefault(t *testing.T) {
17-
telemetry := NewTelemetry()
17+
telemetry := NewTelemetry(nil)
1818
assert.NotNil(t, telemetry)
1919
expectedTelemetry := &Telemetry{Queue: NewQueue(TelemetryQueueSize)}
2020
expectedTelemetry.Network.ScrubHeaders = regexp.MustCompile("Authorization")
@@ -25,7 +25,7 @@ func TestNewTelemetryDefault(t *testing.T) {
2525

2626
func TestNewTelemetryWithOptions(t *testing.T) {
2727
client := http.Client{}
28-
telemetry := NewTelemetry(SetCustomQueueSize(100), EnableNetworkTelemetry(&client),
28+
telemetry := NewTelemetry(nil, SetCustomQueueSize(100), EnableNetworkTelemetry(&client),
2929
EnableNetworkTelemetryRequestHeaders(), EnableNetworkTelemetryResponseHeaders(), EnableLoggerTelemetry())
3030
expectedTelemetry := &Telemetry{Queue: telemetry.Queue}
3131
expectedTelemetry.Network.ScrubHeaders = regexp.MustCompile("Authorization")
@@ -42,7 +42,7 @@ func TestPopulateBody(t *testing.T) {
4242
req.Header.Set("Some_name", "some_value")
4343
rec := httptest.NewRecorder()
4444

45-
telemetry := NewTelemetry()
45+
telemetry := NewTelemetry(nil)
4646
EnableNetworkTelemetryRequestHeaders()(telemetry)
4747
EnableNetworkTelemetryResponseHeaders()(telemetry)
4848
data := telemetry.populateTransporterBody(req, rec.Result())
@@ -62,7 +62,7 @@ func TestPopulateBody(t *testing.T) {
6262
func TestPopulateLoggerBody(t *testing.T) {
6363

6464
message := "some message"
65-
telemetry := NewTelemetry()
65+
telemetry := NewTelemetry(nil)
6666

6767
data := telemetry.populateLoggerBody([]byte(message))
6868

@@ -86,7 +86,7 @@ func TestRoundTrip(t *testing.T) {
8686
defer ts.Close()
8787

8888
client := http.Client{}
89-
telemetry := NewTelemetry(EnableNetworkTelemetry(&client))
89+
telemetry := NewTelemetry(nil, EnableNetworkTelemetry(&client))
9090

9191
req := httptest.NewRequest("GET", ts.URL+"/good", nil)
9292
res, err := telemetry.RoundTrip(req)

0 commit comments

Comments
 (0)