@@ -39,6 +39,49 @@ func TestAgentCommand(t *testing.T) {
39
39
require .Error (t , err )
40
40
assert .Contains (t , err .Error (), "API key not configured" )
41
41
})
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
+ })
42
85
43
86
t .Run ("reports metrics successfully" , func (t * testing.T ) {
44
87
// Reset viper config
@@ -104,71 +147,3 @@ func TestAgentCommand(t *testing.T) {
104
147
}
105
148
})
106
149
}
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