@@ -2,7 +2,6 @@ package telemetry
22
33import (
44 "context"
5- "encoding/json"
65 "net/http"
76 "net/http/httptest"
87 "testing"
@@ -206,12 +205,9 @@ func TestIsTelemetryEnabled_ClientOverrideEnabled(t *testing.T) {
206205 // Setup: Create a server that returns disabled
207206 server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
208207 // Server says disabled, but client override should win
209- resp := map [string ]interface {}{
210- "flags" : map [string ]bool {
211- "databricks.partnerplatform.clientConfigsFeatureFlags.enableTelemetryForGoDriver" : false ,
212- },
213- }
214- _ = json .NewEncoder (w ).Encode (resp )
208+ w .Header ().Set ("Content-Type" , "application/json" )
209+ w .WriteHeader (http .StatusOK )
210+ _ , _ = w .Write ([]byte (`{"flags": [{"name": "databricks.partnerplatform.clientConfigsFeatureFlags.enableTelemetryForGoDriver", "value": "false"}]}` ))
215211 }))
216212 defer server .Close ()
217213
@@ -228,7 +224,7 @@ func TestIsTelemetryEnabled_ClientOverrideEnabled(t *testing.T) {
228224 defer flagCache .releaseContext (server .URL )
229225
230226 // Client override should bypass server check
231- result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient )
227+ result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient , "1.0.0" )
232228
233229 if ! result {
234230 t .Error ("Expected telemetry to be enabled when client explicitly sets enableTelemetry=true, got disabled" )
@@ -240,12 +236,9 @@ func TestIsTelemetryEnabled_ClientOverrideDisabled(t *testing.T) {
240236 // Setup: Create a server that returns enabled
241237 server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
242238 // Server says enabled, but client override should win
243- resp := map [string ]interface {}{
244- "flags" : map [string ]bool {
245- "databricks.partnerplatform.clientConfigsFeatureFlags.enableTelemetryForGoDriver" : true ,
246- },
247- }
248- _ = json .NewEncoder (w ).Encode (resp )
239+ w .Header ().Set ("Content-Type" , "application/json" )
240+ w .WriteHeader (http .StatusOK )
241+ _ , _ = w .Write ([]byte (`{"flags": [{"name": "databricks.partnerplatform.clientConfigsFeatureFlags.enableTelemetryForGoDriver", "value": "true"}]}` ))
249242 }))
250243 defer server .Close ()
251244
@@ -261,7 +254,7 @@ func TestIsTelemetryEnabled_ClientOverrideDisabled(t *testing.T) {
261254 flagCache .getOrCreateContext (server .URL )
262255 defer flagCache .releaseContext (server .URL )
263256
264- result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient )
257+ result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient , "1.0.0" )
265258
266259 if result {
267260 t .Error ("Expected telemetry to be disabled when client explicitly sets enableTelemetry=false, got enabled" )
@@ -272,12 +265,9 @@ func TestIsTelemetryEnabled_ClientOverrideDisabled(t *testing.T) {
272265func TestIsTelemetryEnabled_ServerEnabled (t * testing.T ) {
273266 // Setup: Create a server that returns enabled
274267 server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
275- resp := map [string ]interface {}{
276- "flags" : map [string ]bool {
277- "databricks.partnerplatform.clientConfigsFeatureFlags.enableTelemetryForGoDriver" : true ,
278- },
279- }
280- _ = json .NewEncoder (w ).Encode (resp )
268+ w .Header ().Set ("Content-Type" , "application/json" )
269+ w .WriteHeader (http .StatusOK )
270+ _ , _ = w .Write ([]byte (`{"flags": [{"name": "databricks.partnerplatform.clientConfigsFeatureFlags.enableTelemetryForGoDriver", "value": "true"}]}` ))
281271 }))
282272 defer server .Close ()
283273
@@ -293,7 +283,7 @@ func TestIsTelemetryEnabled_ServerEnabled(t *testing.T) {
293283 flagCache .getOrCreateContext (server .URL )
294284 defer flagCache .releaseContext (server .URL )
295285
296- result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient )
286+ result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient , "1.0.0" )
297287
298288 if ! result {
299289 t .Error ("Expected telemetry to be enabled when server flag is true, got disabled" )
@@ -304,12 +294,9 @@ func TestIsTelemetryEnabled_ServerEnabled(t *testing.T) {
304294func TestIsTelemetryEnabled_ServerDisabled (t * testing.T ) {
305295 // Setup: Create a server that returns disabled
306296 server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
307- resp := map [string ]interface {}{
308- "flags" : map [string ]bool {
309- "databricks.partnerplatform.clientConfigsFeatureFlags.enableTelemetryForGoDriver" : false ,
310- },
311- }
312- _ = json .NewEncoder (w ).Encode (resp )
297+ w .Header ().Set ("Content-Type" , "application/json" )
298+ w .WriteHeader (http .StatusOK )
299+ _ , _ = w .Write ([]byte (`{"flags": [{"name": "databricks.partnerplatform.clientConfigsFeatureFlags.enableTelemetryForGoDriver", "value": "false"}]}` ))
313300 }))
314301 defer server .Close ()
315302
@@ -325,7 +312,7 @@ func TestIsTelemetryEnabled_ServerDisabled(t *testing.T) {
325312 flagCache .getOrCreateContext (server .URL )
326313 defer flagCache .releaseContext (server .URL )
327314
328- result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient )
315+ result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient , "1.0.0" )
329316
330317 if result {
331318 t .Error ("Expected telemetry to be disabled when server flag is false, got enabled" )
@@ -340,7 +327,7 @@ func TestIsTelemetryEnabled_FailSafeDefault(t *testing.T) {
340327 httpClient := & http.Client {Timeout : 5 * time .Second }
341328
342329 // No server available, should default to disabled (fail-safe)
343- result := isTelemetryEnabled (ctx , cfg , "nonexistent-host" , httpClient )
330+ result := isTelemetryEnabled (ctx , cfg , "nonexistent-host" , httpClient , "1.0.0" )
344331
345332 if result {
346333 t .Error ("Expected telemetry to be disabled when server unavailable (fail-safe), got enabled" )
@@ -367,7 +354,7 @@ func TestIsTelemetryEnabled_ServerError(t *testing.T) {
367354 flagCache .getOrCreateContext (server .URL )
368355 defer flagCache .releaseContext (server .URL )
369356
370- result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient )
357+ result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient , "1.0.0" )
371358
372359 // On error, should default to disabled (fail-safe)
373360 if result {
@@ -390,7 +377,7 @@ func TestIsTelemetryEnabled_ServerUnreachable(t *testing.T) {
390377 flagCache .getOrCreateContext (unreachableHost )
391378 defer flagCache .releaseContext (unreachableHost )
392379
393- result := isTelemetryEnabled (ctx , cfg , unreachableHost , httpClient )
380+ result := isTelemetryEnabled (ctx , cfg , unreachableHost , httpClient , "1.0.0" )
394381
395382 // On error, should default to disabled (fail-safe)
396383 if result {
@@ -418,7 +405,7 @@ func TestIsTelemetryEnabled_ClientOverridesServerError(t *testing.T) {
418405 flagCache .getOrCreateContext (server .URL )
419406 defer flagCache .releaseContext (server .URL )
420407
421- result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient )
408+ result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient , "1.0.0" )
422409
423410 // Client override should work even when server errors
424411 if ! result {
0 commit comments