@@ -40,20 +40,6 @@ func TestDefaultConfig(t *testing.T) {
4040 }
4141}
4242
43- func TestParseTelemetryConfig_EmptyParams (t * testing.T ) {
44- cfg := ParseTelemetryConfig (map [string ]string {})
45-
46- if cfg .Enabled {
47- t .Error ("Expected telemetry to be disabled by default" )
48- }
49- if cfg .EnableTelemetry != nil {
50- t .Error ("Expected EnableTelemetry to be nil when DSN param absent" )
51- }
52- if cfg .BatchSize != 100 {
53- t .Errorf ("Expected BatchSize 100, got %d" , cfg .BatchSize )
54- }
55- }
56-
5743func TestParseTelemetryConfig_EnabledTrue (t * testing.T ) {
5844 cfg := ParseTelemetryConfig (map [string ]string {"enableTelemetry" : "true" })
5945
@@ -78,22 +64,6 @@ func TestParseTelemetryConfig_EnabledFalse(t *testing.T) {
7864 }
7965}
8066
81- func TestParseTelemetryConfig_EnableTelemetry_IsSetWhenDSNProvided (t * testing.T ) {
82- cfg := ParseTelemetryConfig (map [string ]string {"enableTelemetry" : "true" })
83-
84- if cfg .EnableTelemetry == nil {
85- t .Error ("Expected EnableTelemetry to be non-nil when enableTelemetry DSN param is present" )
86- }
87- }
88-
89- func TestParseTelemetryConfig_EnableTelemetry_IsNilWhenDSNAbsent (t * testing.T ) {
90- cfg := ParseTelemetryConfig (map [string ]string {})
91-
92- if cfg .EnableTelemetry != nil {
93- t .Error ("Expected EnableTelemetry to be nil when enableTelemetry DSN param is absent" )
94- }
95- }
96-
9767func TestParseTelemetryConfig_BatchSize (t * testing.T ) {
9868 cfg := ParseTelemetryConfig (map [string ]string {"telemetry_batch_size" : "50" })
9969
@@ -151,6 +121,7 @@ func TestParseTelemetryConfig_RetryCount(t *testing.T) {
151121}
152122
153123func TestParseTelemetryConfig_RetryCountZero (t * testing.T ) {
124+ // Zero is valid — it disables retries entirely (unlike batch_size where zero is rejected)
154125 cfg := ParseTelemetryConfig (map [string ]string {"telemetry_retry_count" : "0" })
155126
156127 if cfg .MaxRetries != 0 {
@@ -182,27 +153,6 @@ func TestParseTelemetryConfig_RetryDelayInvalid(t *testing.T) {
182153 }
183154}
184155
185- func TestParseTelemetryConfig_MultipleParams (t * testing.T ) {
186- cfg := ParseTelemetryConfig (map [string ]string {
187- "enableTelemetry" : "true" ,
188- "telemetry_batch_size" : "200" ,
189- "telemetry_flush_interval" : "30s" ,
190- })
191-
192- if cfg .EnableTelemetry == nil || ! * cfg .EnableTelemetry {
193- t .Error ("Expected EnableTelemetry to be &true" )
194- }
195- if cfg .BatchSize != 200 {
196- t .Errorf ("Expected BatchSize 200, got %d" , cfg .BatchSize )
197- }
198- if cfg .FlushInterval != 30 * time .Second {
199- t .Errorf ("Expected FlushInterval 30s, got %v" , cfg .FlushInterval )
200- }
201- if cfg .MaxRetries != 3 {
202- t .Errorf ("Expected MaxRetries to remain default 3, got %d" , cfg .MaxRetries )
203- }
204- }
205-
206156func TestParseTelemetryConfig_AllParams (t * testing.T ) {
207157 cfg := ParseTelemetryConfig (map [string ]string {
208158 "enableTelemetry" : "true" ,
@@ -229,50 +179,34 @@ func TestParseTelemetryConfig_AllParams(t *testing.T) {
229179 }
230180}
231181
232- // TestIsTelemetryEnabled_ExplicitOptOut: client DSN sets enableTelemetry=false → disabled,
233- // server flag is NOT consulted.
182+ // TestIsTelemetryEnabled_ExplicitOptOut: client sets enableTelemetry=false →
183+ // disabled even when server flag is true. Server is not consulted.
234184func TestIsTelemetryEnabled_ExplicitOptOut (t * testing.T ) {
235185 server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
236186 w .Header ().Set ("Content-Type" , "application/json" )
237187 _ , _ = w .Write ([]byte (`{"flags": [{"name": "databricks.partnerplatform.clientConfigsFeatureFlags.enableTelemetryForGoDriver", "value": "true"}], "ttl_seconds": 300}` ))
238188 }))
239189 defer server .Close ()
240190
241- cfg := & Config {EnableTelemetry : boolPtr (false )}
242-
243- result := isTelemetryEnabled (context .Background (), cfg , server .URL , "test-version" , & http.Client {Timeout : 5 * time .Second })
191+ result := isTelemetryEnabled (context .Background (), & Config {EnableTelemetry : boolPtr (false )}, server .URL , "test-version" , & http.Client {Timeout : 5 * time .Second })
244192
245193 if result {
246- t .Error ("Expected telemetry to be disabled when client DSN sets enableTelemetry=false, got enabled" )
194+ t .Error ("Expected telemetry to be disabled when client sets enableTelemetry=false, got enabled" )
247195 }
248196}
249197
250- // TestIsTelemetryEnabled_UserOptInServerEnabled: client DSN sets enableTelemetry=true → enabled,
251- // server flag is NOT consulted (no network call).
252- func TestIsTelemetryEnabled_UserOptInServerEnabled (t * testing.T ) {
253- cfg := & Config {EnableTelemetry : boolPtr (true )}
254-
255- result := isTelemetryEnabled (context .Background (), cfg , "http://unreachable-host" , "test-version" , & http.Client {Timeout : 5 * time .Second })
198+ // TestIsTelemetryEnabled_ExplicitOptIn: client sets enableTelemetry=true →
199+ // enabled without any server call (unreachable host proves no network call is made).
200+ func TestIsTelemetryEnabled_ExplicitOptIn (t * testing.T ) {
201+ result := isTelemetryEnabled (context .Background (), & Config {EnableTelemetry : boolPtr (true )}, "http://unreachable-host" , "test-version" , & http.Client {Timeout : 5 * time .Second })
256202
257203 if ! result {
258- t .Error ("Expected telemetry to be enabled when client DSN sets enableTelemetry=true, got disabled" )
204+ t .Error ("Expected telemetry to be enabled when client sets enableTelemetry=true, got disabled" )
259205 }
260206}
261207
262- // TestIsTelemetryEnabled_UserOptInServerDisabled: client DSN=true wins over server disabled.
263- func TestIsTelemetryEnabled_UserOptInServerDisabled (t * testing.T ) {
264- cfg := & Config {EnableTelemetry : boolPtr (true )}
265-
266- result := isTelemetryEnabled (context .Background (), cfg , "http://unreachable-host" , "test-version" , & http.Client {Timeout : 5 * time .Second })
267-
268- if ! result {
269- t .Error ("Expected telemetry to be enabled when client explicitly opts in, got disabled" )
270- }
271- }
272-
273- // TestIsTelemetryEnabled_DefaultChecksServerFlag: EnableTelemetry=nil → server flag controls.
274- // Server returns true → enabled.
275- func TestIsTelemetryEnabled_DefaultChecksServerFlag (t * testing.T ) {
208+ // TestIsTelemetryEnabled_ServerEnabled: no DSN override, server flag=true → enabled.
209+ func TestIsTelemetryEnabled_ServerEnabled (t * testing.T ) {
276210 server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
277211 w .Header ().Set ("Content-Type" , "application/json" )
278212 _ , _ = w .Write ([]byte (`{"flags": [{"name": "databricks.partnerplatform.clientConfigsFeatureFlags.enableTelemetryForGoDriver", "value": "true"}], "ttl_seconds": 300}` ))
@@ -290,8 +224,8 @@ func TestIsTelemetryEnabled_DefaultChecksServerFlag(t *testing.T) {
290224 }
291225}
292226
293- // TestIsTelemetryEnabled_DefaultServerDisabled: EnableTelemetry=nil , server returns false → disabled.
294- func TestIsTelemetryEnabled_DefaultServerDisabled (t * testing.T ) {
227+ // TestIsTelemetryEnabled_ServerDisabled: no DSN override , server flag= false → disabled.
228+ func TestIsTelemetryEnabled_ServerDisabled (t * testing.T ) {
295229 server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
296230 w .Header ().Set ("Content-Type" , "application/json" )
297231 _ , _ = w .Write ([]byte (`{"flags": [{"name": "databricks.partnerplatform.clientConfigsFeatureFlags.enableTelemetryForGoDriver", "value": "false"}], "ttl_seconds": 300}` ))
@@ -309,37 +243,7 @@ func TestIsTelemetryEnabled_DefaultServerDisabled(t *testing.T) {
309243 }
310244}
311245
312- // TestIsTelemetryEnabled_ServerFlagOnly: EnableTelemetry=nil, server returns true → enabled.
313- func TestIsTelemetryEnabled_ServerFlagOnly (t * testing.T ) {
314- server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
315- w .Header ().Set ("Content-Type" , "application/json" )
316- _ , _ = w .Write ([]byte (`{"flags": [{"name": "databricks.partnerplatform.clientConfigsFeatureFlags.enableTelemetryForGoDriver", "value": "true"}], "ttl_seconds": 300}` ))
317- }))
318- defer server .Close ()
319-
320- flagCache := getFeatureFlagCache ()
321- flagCache .getOrCreateContext (server .URL )
322- defer flagCache .releaseContext (server .URL )
323-
324- result := isTelemetryEnabled (context .Background (), & Config {}, server .URL , "test-version" , & http.Client {Timeout : 5 * time .Second })
325-
326- if ! result {
327- t .Error ("Expected telemetry to be enabled when server flag is true and no DSN override, got disabled" )
328- }
329- }
330-
331- // TestIsTelemetryEnabled_Default: EnableTelemetry=nil (default), server unreachable → disabled.
332- // Neither priority 1 nor priority 2 fires, so telemetry is off.
333- func TestIsTelemetryEnabled_Default (t * testing.T ) {
334- result := isTelemetryEnabled (context .Background (), DefaultConfig (), "test-host" , "test-version" , & http.Client {Timeout : 5 * time .Second })
335-
336- if result {
337- t .Error ("Expected telemetry to be disabled when EnableTelemetry is nil and server is unreachable, got enabled" )
338- }
339- }
340-
341- // TestIsTelemetryEnabled_ServerError: EnableTelemetry=nil, server errors → disabled.
342- // Priority 2 fails, so telemetry stays off.
246+ // TestIsTelemetryEnabled_ServerError: no DSN override, server returns 500 → disabled.
343247func TestIsTelemetryEnabled_ServerError (t * testing.T ) {
344248 server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
345249 w .WriteHeader (http .StatusInternalServerError )
@@ -357,15 +261,13 @@ func TestIsTelemetryEnabled_ServerError(t *testing.T) {
357261 }
358262}
359263
360- // TestIsTelemetryEnabled_ServerUnreachable: EnableTelemetry=nil, server unreachable → disabled.
361- // Priority 2 fails, so telemetry stays off.
264+ // TestIsTelemetryEnabled_ServerUnreachable: no DSN override, server unreachable → disabled.
362265func TestIsTelemetryEnabled_ServerUnreachable (t * testing.T ) {
363266 flagCache := getFeatureFlagCache ()
364- unreachableHost := "http://localhost:9999"
365- flagCache .getOrCreateContext (unreachableHost )
366- defer flagCache .releaseContext (unreachableHost )
267+ flagCache .getOrCreateContext ("http://localhost:9999" )
268+ defer flagCache .releaseContext ("http://localhost:9999" )
367269
368- result := isTelemetryEnabled (context .Background (), & Config {}, unreachableHost , "test-version" , & http.Client {Timeout : 1 * time .Second })
270+ result := isTelemetryEnabled (context .Background (), & Config {}, "http://localhost:9999" , "test-version" , & http.Client {Timeout : 1 * time .Second })
369271
370272 if result {
371273 t .Error ("Expected telemetry to be disabled when server is unreachable and EnableTelemetry is nil, got enabled" )
0 commit comments