(t *testing.T)
| 458 | } |
| 459 | |
| 460 | func TestRuler_Create(t *testing.T) { |
| 461 | store := newMockRuleStore(make(map[string]rulespb.RuleGroupList), nil) |
| 462 | cfg := defaultRulerConfig(t) |
| 463 | |
| 464 | r := newTestRuler(t, cfg, store, nil) |
| 465 | defer services.StopAndAwaitTerminated(context.Background(), r) //nolint:errcheck |
| 466 | |
| 467 | a := NewAPI(r, r.store, log.NewNopLogger()) |
| 468 | |
| 469 | tc := []struct { |
| 470 | name string |
| 471 | input string |
| 472 | output string |
| 473 | err error |
| 474 | status int |
| 475 | }{ |
| 476 | { |
| 477 | name: "with an empty payload", |
| 478 | input: "", |
| 479 | status: 400, |
| 480 | err: errors.New("invalid rules config: rule group name must not be empty"), |
| 481 | }, |
| 482 | { |
| 483 | name: "with no rule group name", |
| 484 | input: ` |
| 485 | interval: 15s |
| 486 | rules: |
| 487 | - record: up_rule |
| 488 | expr: up |
| 489 | `, |
| 490 | status: 400, |
| 491 | err: errors.New("invalid rules config: rule group name must not be empty"), |
| 492 | }, |
| 493 | { |
| 494 | name: "with no rules", |
| 495 | input: ` |
| 496 | name: rg_name |
| 497 | interval: 15s |
| 498 | `, |
| 499 | status: 400, |
| 500 | err: errors.New("invalid rules config: rule group 'rg_name' has no rules"), |
| 501 | }, |
| 502 | { |
| 503 | name: "with a valid rules file", |
| 504 | status: 202, |
| 505 | input: ` |
| 506 | name: test |
| 507 | interval: 15s |
| 508 | rules: |
| 509 | - record: up_rule |
| 510 | expr: up{} |
| 511 | - alert: up_alert |
| 512 | expr: sum(up{}) > 1 |
| 513 | for: 30s |
| 514 | annotations: |
| 515 | test: test |
| 516 | labels: |
| 517 | test: test |
nothing calls this directly
no test coverage detected