Skip to content

Commit 561698e

Browse files
committed
Remove redundant tests; rename survivors to match their true scope
config_test.go: - Drop TestParseTelemetryConfig_EmptyParams (TestDefaultConfig covers it) - Drop TestParseTelemetryConfig_EnableTelemetry_IsSet/IsNil (implied by EnabledTrue/EnabledFalse) - Drop TestIsTelemetryEnabled_UserOptInServerDisabled (identical body to UserOptInServerEnabled) - Drop TestIsTelemetryEnabled_ServerFlagOnly (identical body to DefaultChecksServerFlag) - Rename UserOptInServerEnabled → ExplicitOptIn; Default/DefaultChecksServerFlag/DefaultServerDisabled → ServerEnabled/ServerDisabled integration_test.go: - Drop TestIntegration_OptInPriority_ExplicitOptOut (duplicate of config_test ExplicitOptOut) - Drop TestIntegration_FieldMapping (fully subsumed by CorrectnessAllFields) Co-authored-by: Isaac
1 parent ddc415f commit 561698e

2 files changed

Lines changed: 19 additions & 205 deletions

File tree

telemetry/config_test.go

Lines changed: 19 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -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-
5743
func 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-
9767
func 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

153123
func 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-
206156
func 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.
234184
func 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.
343247
func 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.
362265
func 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")

telemetry/integration_test.go

Lines changed: 0 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -149,24 +149,6 @@ func TestIntegration_CircuitBreakerOpening(t *testing.T) {
149149
}
150150
}
151151

152-
// TestIntegration_OptInPriority_ExplicitOptOut: EnableTelemetry=&false overrides server.
153-
func TestIntegration_OptInPriority_ExplicitOptOut(t *testing.T) {
154-
f := false
155-
cfg := &Config{
156-
EnableTelemetry: &f, // client explicitly disabled via DSN — server not consulted
157-
BatchSize: 100,
158-
FlushInterval: 5 * time.Second,
159-
MaxRetries: 3,
160-
RetryDelay: 100 * time.Millisecond,
161-
}
162-
163-
result := isTelemetryEnabled(context.Background(), cfg, "http://unreachable-host", "test-version", &http.Client{Timeout: 5 * time.Second})
164-
165-
if result {
166-
t.Error("Expected telemetry to be disabled when EnableTelemetry=&false, got enabled")
167-
}
168-
}
169-
170152
// TestIntegration_PrivacyCompliance verifies no sensitive data is collected.
171153
func TestIntegration_PrivacyCompliance_NoQueryText(t *testing.T) {
172154
cfg := DefaultConfig()
@@ -225,76 +207,6 @@ func TestIntegration_PrivacyCompliance_NoQueryText(t *testing.T) {
225207
t.Log("Privacy compliance test passed: sensitive data not present in payload")
226208
}
227209

228-
// TestIntegration_FieldMapping verifies that only known metric fields are exported
229-
// in the TelemetryRequest format (no generic tag pass-through).
230-
func TestIntegration_FieldMapping(t *testing.T) {
231-
cfg := DefaultConfig()
232-
cfg.FlushInterval = 50 * time.Millisecond
233-
httpClient := &http.Client{Timeout: 5 * time.Second}
234-
235-
var capturedRequest TelemetryRequest
236-
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
237-
body, _ := io.ReadAll(r.Body)
238-
_ = json.Unmarshal(body, &capturedRequest)
239-
w.WriteHeader(http.StatusOK)
240-
}))
241-
defer server.Close()
242-
243-
exporter := newTelemetryExporter(server.URL, "test-version", httpClient, cfg)
244-
245-
metric := &telemetryMetric{
246-
metricType: "connection",
247-
timestamp: time.Now(),
248-
workspaceID: "ws-test",
249-
sessionID: "sess-1",
250-
latencyMs: 42,
251-
tags: map[string]interface{}{
252-
"chunk_count": 3,
253-
"bytes_downloaded": int64(1024),
254-
"unknown.tag": "value", // should NOT appear in output
255-
},
256-
}
257-
258-
ctx := context.Background()
259-
exporter.export(ctx, []*telemetryMetric{metric})
260-
261-
time.Sleep(150 * time.Millisecond)
262-
263-
if len(capturedRequest.ProtoLogs) == 0 {
264-
t.Fatal("Expected at least one ProtoLog entry")
265-
}
266-
267-
// Each ProtoLog entry is a JSON-encoded TelemetryFrontendLog.
268-
var log TelemetryFrontendLog
269-
if err := json.Unmarshal([]byte(capturedRequest.ProtoLogs[0]), &log); err != nil {
270-
t.Fatalf("Failed to unmarshal ProtoLog: %v", err)
271-
}
272-
273-
if log.Entry == nil || log.Entry.SQLDriverLog == nil {
274-
t.Fatal("Expected SQLDriverLog to be populated")
275-
}
276-
277-
entry := log.Entry.SQLDriverLog
278-
if entry.SessionID != "sess-1" {
279-
t.Errorf("Expected session_id=sess-1, got %q", entry.SessionID)
280-
}
281-
if entry.OperationLatencyMs != 42 {
282-
t.Errorf("Expected latency=42, got %d", entry.OperationLatencyMs)
283-
}
284-
if entry.SQLOperation != nil && entry.SQLOperation.ChunkDetails != nil {
285-
if entry.SQLOperation.ChunkDetails.TotalChunksIterated != 3 {
286-
t.Errorf("Expected total_chunks_iterated=3, got %d", entry.SQLOperation.ChunkDetails.TotalChunksIterated)
287-
}
288-
}
289-
290-
// unknown.tag must not appear anywhere in the serialised output
291-
if strings.Contains(capturedRequest.ProtoLogs[0], "unknown.tag") {
292-
t.Error("unknown.tag must not be exported")
293-
}
294-
295-
t.Log("Field mapping test passed")
296-
}
297-
298210
// TestIntegration_TelemetryEventCorrectnessAllFields verifies that every field of the
299211
// TelemetryRequest and nested TelemetryFrontendLog is correctly populated and present
300212
// when a metric is exported. This is the canonical correctness check for the wire format.

0 commit comments

Comments
 (0)