(t *testing.T)
| 234 | } |
| 235 | |
| 236 | func TestMetricsAPI(t *testing.T) { |
| 237 | dms := storage.NewDiskMetricStore("", 100*time.Millisecond, nil, logger) |
| 238 | testAPI := New(logger, dms, testFlags, testBuildInfo) |
| 239 | |
| 240 | req, err := http.NewRequest("GET", "http://example.org/", &bytes.Buffer{}) |
| 241 | if err != nil { |
| 242 | t.Fatal(err) |
| 243 | } |
| 244 | |
| 245 | w := httptest.NewRecorder() |
| 246 | |
| 247 | testAPI.metrics(w, req) |
| 248 | |
| 249 | if expected, got := http.StatusOK, w.Code; expected != got { |
| 250 | t.Errorf("Wanted status code %v, got %v.", expected, got) |
| 251 | } |
| 252 | |
| 253 | requiredResponse := `{"status":"success","data":[]}` |
| 254 | |
| 255 | if expected, got := requiredResponse, w.Body.String(); expected != got { |
| 256 | t.Errorf("Wanted response %q, got %q.", requiredResponse, w.Body.String()) |
| 257 | } |
| 258 | |
| 259 | testTime, _ := time.Parse(time.RFC3339Nano, "2020-03-10T00:54:08.025744841+05:30") |
| 260 | |
| 261 | errCh := make(chan error, 1) |
| 262 | |
| 263 | dms.SubmitWriteRequest(storage.WriteRequest{ |
| 264 | Labels: grouping1, |
| 265 | Timestamp: testTime, |
| 266 | MetricFamilies: testutil.MetricFamiliesMap(mf1, mfh), |
| 267 | Done: errCh, |
| 268 | }) |
| 269 | |
| 270 | for err := range errCh { |
| 271 | t.Fatal("Unexpected error:", err) |
| 272 | } |
| 273 | |
| 274 | w = httptest.NewRecorder() |
| 275 | |
| 276 | testAPI.metrics(w, req) |
| 277 | |
| 278 | var prettyJSON bytes.Buffer |
| 279 | json.Indent(&prettyJSON, w.Body.Bytes(), "", "\t") |
| 280 | |
| 281 | requiredResponse = `{ |
| 282 | "status": "success", |
| 283 | "data": [ |
| 284 | { |
| 285 | "labels": { |
| 286 | "instance": "inst'a\"n\\ce1", |
| 287 | "job": "Björn" |
| 288 | }, |
| 289 | "last_push_successful": true, |
| 290 | "mf1": { |
| 291 | "time_stamp": "2020-03-10T00:54:08.025744841+05:30", |
| 292 | "type": "SUMMARY", |
| 293 | "metrics": [ |
nothing calls this directly
no test coverage detected
searching dependent graphs…