Skip to content

Commit e23e489

Browse files
committed
Clean up tests
1 parent 7ea1f68 commit e23e489

File tree

2 files changed

+43
-74
lines changed

2 files changed

+43
-74
lines changed

Diff for: cmd/agent.go

-6
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,6 @@ func init() {
101101
}
102102

103103
func reportMetrics(hostname string) error {
104-
// Check API key first
105-
apiKey := viper.GetString("api_key")
106-
if apiKey == "" {
107-
return fmt.Errorf("API key not configured")
108-
}
109-
110104
cpuPercent, err := cpu.Percent(time.Second, false)
111105
if err != nil {
112106
return fmt.Errorf("error getting CPU metrics: %w", err)

Diff for: cmd/agent_test.go

+43-68
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,49 @@ func TestAgentCommand(t *testing.T) {
3939
require.Error(t, err)
4040
assert.Contains(t, err.Error(), "API key not configured")
4141
})
42+
}
43+
44+
func TestMetricsCollection(t *testing.T) {
45+
// Save original values
46+
originalEndpoint := endpoint
47+
originalEnvAPIKey := os.Getenv("HONEYBADGER_API_KEY")
48+
defer func() {
49+
// Restore original values after test
50+
endpoint = originalEndpoint
51+
if err := os.Setenv("HONEYBADGER_API_KEY", originalEnvAPIKey); err != nil {
52+
t.Errorf("error restoring environment variable: %v", err)
53+
}
54+
}()
55+
56+
// Unset environment variable for tests
57+
if err := os.Unsetenv("HONEYBADGER_API_KEY"); err != nil {
58+
t.Errorf("error unsetting environment variable: %v", err)
59+
}
60+
61+
// Set up test server
62+
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
63+
w.WriteHeader(http.StatusOK)
64+
}))
65+
defer server.Close()
66+
67+
// Use test server endpoint
68+
endpoint = server.URL
69+
70+
t.Run("handles invalid endpoint", func(t *testing.T) {
71+
// Configure viper
72+
viper.Reset()
73+
viper.Set("api_key", "test-api-key")
74+
75+
// Set invalid endpoint
76+
endpoint = "http://invalid-endpoint"
77+
78+
hostname, err := os.Hostname()
79+
require.NoError(t, err)
80+
81+
err = reportMetrics(hostname)
82+
require.Error(t, err)
83+
assert.Contains(t, err.Error(), "error sending metrics")
84+
})
4285

4386
t.Run("reports metrics successfully", func(t *testing.T) {
4487
// Reset viper config
@@ -104,71 +147,3 @@ func TestAgentCommand(t *testing.T) {
104147
}
105148
})
106149
}
107-
108-
func TestMetricsCollection(t *testing.T) {
109-
// Save original values
110-
originalEndpoint := endpoint
111-
originalEnvAPIKey := os.Getenv("HONEYBADGER_API_KEY")
112-
defer func() {
113-
// Restore original values after test
114-
endpoint = originalEndpoint
115-
if err := os.Setenv("HONEYBADGER_API_KEY", originalEnvAPIKey); err != nil {
116-
t.Errorf("error restoring environment variable: %v", err)
117-
}
118-
}()
119-
120-
// Unset environment variable for tests
121-
if err := os.Unsetenv("HONEYBADGER_API_KEY"); err != nil {
122-
t.Errorf("error unsetting environment variable: %v", err)
123-
}
124-
125-
// Set up test server
126-
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
127-
w.WriteHeader(http.StatusOK)
128-
}))
129-
defer server.Close()
130-
131-
// Use test server endpoint
132-
endpoint = server.URL
133-
134-
t.Run("collects metrics without error", func(t *testing.T) {
135-
// Configure viper
136-
viper.Reset()
137-
viper.Set("api_key", "test-api-key")
138-
139-
hostname, err := os.Hostname()
140-
require.NoError(t, err)
141-
142-
err = reportMetrics(hostname)
143-
require.NoError(t, err)
144-
})
145-
146-
t.Run("handles missing API key", func(t *testing.T) {
147-
// Reset viper config and ensure API key is not set
148-
viper.Reset()
149-
viper.Set("api_key", "")
150-
151-
hostname, err := os.Hostname()
152-
require.NoError(t, err)
153-
154-
err = reportMetrics(hostname)
155-
require.Error(t, err)
156-
assert.Contains(t, err.Error(), "API key not configured")
157-
})
158-
159-
t.Run("handles invalid endpoint", func(t *testing.T) {
160-
// Configure viper
161-
viper.Reset()
162-
viper.Set("api_key", "test-api-key")
163-
164-
// Set invalid endpoint
165-
endpoint = "http://invalid-endpoint"
166-
167-
hostname, err := os.Hostname()
168-
require.NoError(t, err)
169-
170-
err = reportMetrics(hostname)
171-
require.Error(t, err)
172-
assert.Contains(t, err.Error(), "error sending metrics")
173-
})
174-
}

0 commit comments

Comments
 (0)