@@ -2,7 +2,7 @@ package telemetry
22
33import (
44 "context"
5- "encoding/json"
5+
66 "net/http"
77 "net/http/httptest"
88 "testing"
@@ -206,12 +206,8 @@ func TestIsTelemetryEnabled_ClientOverrideEnabled(t *testing.T) {
206206 // Setup: Create a server that returns disabled
207207 server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
208208 // 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 )
209+ w .Header ().Set ("Content-Type" , "application/json" )
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 , nil )
232228
233229 if ! result {
234230 t .Error ("Expected telemetry to be enabled when client explicitly sets enableTelemetry=true, got disabled" )
@@ -240,12 +236,8 @@ 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 .Write ([]byte (`{"flags": [{"name": "databricks.partnerplatform.clientConfigsFeatureFlags.enableTelemetryForGoDriver", "value": "true"}]}` ))
249241 }))
250242 defer server .Close ()
251243
@@ -261,7 +253,7 @@ func TestIsTelemetryEnabled_ClientOverrideDisabled(t *testing.T) {
261253 flagCache .getOrCreateContext (server .URL )
262254 defer flagCache .releaseContext (server .URL )
263255
264- result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient )
256+ result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient , nil )
265257
266258 if result {
267259 t .Error ("Expected telemetry to be disabled when client explicitly sets enableTelemetry=false, got enabled" )
@@ -272,12 +264,8 @@ func TestIsTelemetryEnabled_ClientOverrideDisabled(t *testing.T) {
272264func TestIsTelemetryEnabled_ServerEnabled (t * testing.T ) {
273265 // Setup: Create a server that returns enabled
274266 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 )
267+ w .Header ().Set ("Content-Type" , "application/json" )
268+ _ , _ = w .Write ([]byte (`{"flags": [{"name": "databricks.partnerplatform.clientConfigsFeatureFlags.enableTelemetryForGoDriver", "value": "true"}]}` ))
281269 }))
282270 defer server .Close ()
283271
@@ -293,7 +281,7 @@ func TestIsTelemetryEnabled_ServerEnabled(t *testing.T) {
293281 flagCache .getOrCreateContext (server .URL )
294282 defer flagCache .releaseContext (server .URL )
295283
296- result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient )
284+ result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient , nil )
297285
298286 if ! result {
299287 t .Error ("Expected telemetry to be enabled when server flag is true, got disabled" )
@@ -304,12 +292,8 @@ func TestIsTelemetryEnabled_ServerEnabled(t *testing.T) {
304292func TestIsTelemetryEnabled_ServerDisabled (t * testing.T ) {
305293 // Setup: Create a server that returns disabled
306294 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 )
295+ w .Header ().Set ("Content-Type" , "application/json" )
296+ _ , _ = w .Write ([]byte (`{"flags": [{"name": "databricks.partnerplatform.clientConfigsFeatureFlags.enableTelemetryForGoDriver", "value": "false"}]}` ))
313297 }))
314298 defer server .Close ()
315299
@@ -325,7 +309,7 @@ func TestIsTelemetryEnabled_ServerDisabled(t *testing.T) {
325309 flagCache .getOrCreateContext (server .URL )
326310 defer flagCache .releaseContext (server .URL )
327311
328- result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient )
312+ result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient , nil )
329313
330314 if result {
331315 t .Error ("Expected telemetry to be disabled when server flag is false, got enabled" )
@@ -340,7 +324,7 @@ func TestIsTelemetryEnabled_FailSafeDefault(t *testing.T) {
340324 httpClient := & http.Client {Timeout : 5 * time .Second }
341325
342326 // No server available, should default to disabled (fail-safe)
343- result := isTelemetryEnabled (ctx , cfg , "nonexistent-host" , httpClient )
327+ result := isTelemetryEnabled (ctx , cfg , "nonexistent-host" , httpClient , nil )
344328
345329 if result {
346330 t .Error ("Expected telemetry to be disabled when server unavailable (fail-safe), got enabled" )
@@ -367,7 +351,7 @@ func TestIsTelemetryEnabled_ServerError(t *testing.T) {
367351 flagCache .getOrCreateContext (server .URL )
368352 defer flagCache .releaseContext (server .URL )
369353
370- result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient )
354+ result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient , nil )
371355
372356 // On error, should default to disabled (fail-safe)
373357 if result {
@@ -390,7 +374,7 @@ func TestIsTelemetryEnabled_ServerUnreachable(t *testing.T) {
390374 flagCache .getOrCreateContext (unreachableHost )
391375 defer flagCache .releaseContext (unreachableHost )
392376
393- result := isTelemetryEnabled (ctx , cfg , unreachableHost , httpClient )
377+ result := isTelemetryEnabled (ctx , cfg , unreachableHost , httpClient , nil )
394378
395379 // On error, should default to disabled (fail-safe)
396380 if result {
@@ -418,7 +402,7 @@ func TestIsTelemetryEnabled_ClientOverridesServerError(t *testing.T) {
418402 flagCache .getOrCreateContext (server .URL )
419403 defer flagCache .releaseContext (server .URL )
420404
421- result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient )
405+ result := isTelemetryEnabled (ctx , cfg , server .URL , httpClient , nil )
422406
423407 // Client override should work even when server errors
424408 if ! result {
0 commit comments