@@ -23,9 +23,7 @@ import (
2323 "github.com/stretchr/testify/mock"
2424)
2525
26- func testSource () Source {
27- return Source {Client : ClientName , ClientVersion : "6.1.0" }
28- }
26+ const testClientVersion = "6.1.0"
2927
3028func response (statusCode int , body string ) * http.Response {
3129 return & http.Response {
@@ -72,11 +70,10 @@ func TestRecord_SendsWellFormedMutation(t *testing.T) {
7270 Return (req , nil )
7371 client .On ("Do" , req ).Return (response (http .StatusOK , "{}" ), nil )
7472
75- rec := NewRecorder (client , testSource ())
76- rec .Record (context .Background (), Event {
77- Feature : "srcCli.search" ,
78- Action : "succeeded" ,
79- Metadata : map [string ]float64 {"durationMs" : 12 , "exitCode" : 0 },
73+ rec := NewRecorder (client , testClientVersion )
74+ rec .Record (context .Background (), "srcCli.search" , "succeeded" , map [string ]float64 {
75+ "durationMs" : 12 ,
76+ "exitCode" : 0 ,
8077 })
8178
8279 assert .Equal (t , recordEventsMutation , gotPayload .Query )
@@ -90,8 +87,8 @@ func TestRecord_SendsWellFormedMutation(t *testing.T) {
9087 assert .Equal (t , "succeeded" , event ["action" ])
9188
9289 source := event ["source" ].(map [string ]any )
93- assert .Equal (t , ClientName , source ["client" ])
94- assert .Equal (t , "6.1.0" , source ["clientVersion" ])
90+ assert .Equal (t , clientName , source ["client" ])
91+ assert .Equal (t , testClientVersion , source ["clientVersion" ])
9592
9693 params := event ["parameters" ].(map [string ]any )
9794 assert .Equal (t , float64 (eventParametersVersion ), params ["version" ])
@@ -122,8 +119,8 @@ func TestRecord_EmptyMetadataSendsEmptyList(t *testing.T) {
122119 Return (req , nil )
123120 client .On ("Do" , req ).Return (response (http .StatusOK , "{}" ), nil )
124121
125- rec := NewRecorder (client , testSource () )
126- rec .Record (context .Background (), Event { Feature : "srcCli.version" , Action : "succeeded" } )
122+ rec := NewRecorder (client , testClientVersion )
123+ rec .Record (context .Background (), "srcCli.version" , "succeeded" , nil )
127124
128125 event := gotPayload .Variables ["events" ].([]any )[0 ].(map [string ]any )
129126 params := event ["parameters" ].(map [string ]any )
@@ -136,17 +133,15 @@ func TestRecord_NetworkErrorSwallowed(t *testing.T) {
136133 client .On ("NewHTTPRequest" , mock .Anything , http .MethodPost , ".api/graphql" , mock .Anything ).Return (req , nil )
137134 client .On ("Do" , req ).Return (nil , errors .New ("connection refused" ))
138135
139- var debug bytes.Buffer
140- rec := NewRecorder (client , testSource (), WithDebug (& debug ))
136+ rec := NewRecorder (client , testClientVersion )
141137
142138 // Must not panic and must not surface the error.
143139 assert .NotPanics (t , func () {
144- rec .Record (context .Background (), Event { Feature : "srcCli.search" , Action : "failed" } )
140+ rec .Record (context .Background (), "srcCli.search" , "failed" , nil )
145141 })
146- assert .Contains (t , debug .String (), "connection refused" )
147142
148143 // record itself reports the error for callers that want it.
149- err := rec .record (context .Background (), Event { Feature : "srcCli.search" , Action : "failed" } )
144+ err := rec .record (context .Background (), "srcCli.search" , "failed" , nil )
150145 assert .Error (t , err )
151146}
152147
@@ -158,16 +153,16 @@ func TestRecord_GraphQLErrorSwallowed(t *testing.T) {
158153 client .On ("NewHTTPRequest" , mock .Anything , http .MethodPost , ".api/graphql" , mock .Anything ).Return (req , nil )
159154 client .On ("Do" , req ).Return (response (http .StatusOK , "{\" errors\" :[{\" message\" :\" unknown field telemetry\" }]}" ), nil )
160155
161- rec := NewRecorder (client , testSource () )
156+ rec := NewRecorder (client , testClientVersion )
162157 assert .NotPanics (t , func () {
163- rec .Record (context .Background (), Event { Feature : "srcCli.search" , Action : "succeeded" } )
158+ rec .Record (context .Background (), "srcCli.search" , "succeeded" , nil )
164159 })
165160}
166161
167162func TestRecord_NilClientDoesNotPanic (t * testing.T ) {
168- rec := NewRecorder (nil , testSource () )
163+ rec := NewRecorder (nil , testClientVersion )
169164 assert .NotPanics (t , func () {
170- rec .Record (context .Background (), Event { Feature : "srcCli.search" , Action : "succeeded" } )
165+ rec .Record (context .Background (), "srcCli.search" , "succeeded" , nil )
171166 })
172167}
173168
@@ -203,8 +198,8 @@ func TestRecord_OAuthUnauthorizedDoesNotWriteToStdout(t *testing.T) {
203198 os .Stdout = stdoutWriter
204199 t .Cleanup (func () { os .Stdout = oldStdout })
205200
206- rec := NewRecorder (client , testSource () )
207- rec .Record (context .Background (), Event { Feature : "srcCli.search" , Action : "succeeded" } )
201+ rec := NewRecorder (client , testClientVersion )
202+ rec .Record (context .Background (), "srcCli.search" , "succeeded" , nil )
208203
209204 if err := stdoutWriter .Close (); err != nil {
210205 t .Fatal (err )
@@ -235,22 +230,24 @@ func TestRecord_AppliesTimeout(t *testing.T) {
235230 Return (req , nil )
236231 client .On ("Do" , req ).Return (response (http .StatusOK , "{}" ), nil )
237232
238- rec := NewRecorder (client , testSource (), WithTimeout (50 * time .Millisecond ))
239- rec .Record (context .Background (), Event {Feature : "srcCli.search" , Action : "succeeded" })
233+ rec := NewRecorder (client , testClientVersion )
234+ rec .timeout = 50 * time .Millisecond
235+ rec .Record (context .Background (), "srcCli.search" , "succeeded" , nil )
240236
241237 assert .True (t , hadDeadline , "expected Record to apply a context deadline" )
242238}
243239
244240func TestRecord_TimeoutCancelsHTTPRequest (t * testing.T ) {
245241 requestCanceled := make (chan struct {})
246242 client := & cancellationClient {canceled : requestCanceled , release : make (chan struct {})}
247- rec := NewRecorder (client , testSource (), WithTimeout (20 * time .Millisecond ))
243+ rec := NewRecorder (client , testClientVersion )
244+ rec .timeout = 20 * time .Millisecond
248245
249246 ctx , cancel := context .WithCancel (context .Background ())
250247 defer cancel ()
251248 done := make (chan struct {})
252249 go func () {
253- rec .Record (ctx , Event { Feature : "srcCli.search" , Action : "succeeded" } )
250+ rec .Record (ctx , "srcCli.search" , "succeeded" , nil )
254251 close (done )
255252 }()
256253
0 commit comments