(t *testing.T, rulerConfig Config, store rulestore.RuleStore, querierTestConfig *querier.TestConfig)
| 364 | } |
| 365 | |
| 366 | func newTestRuler(t *testing.T, rulerConfig Config, store rulestore.RuleStore, querierTestConfig *querier.TestConfig) *Ruler { |
| 367 | ruler, _ := buildRuler(t, rulerConfig, querierTestConfig, store, nil) |
| 368 | require.NoError(t, services.StartAndAwaitRunning(context.Background(), ruler)) |
| 369 | rgs, err := store.ListAllRuleGroups(context.Background()) |
| 370 | require.NoError(t, err) |
| 371 | |
| 372 | // Wait to ensure syncRules has finished and all rules are loaded before usage |
| 373 | deadline := time.Now().Add(3 * time.Second) |
| 374 | for { |
| 375 | loaded := true |
| 376 | for tenantId := range rgs { |
| 377 | if len(ruler.manager.GetRules(tenantId)) == 0 { |
| 378 | loaded = false |
| 379 | } |
| 380 | } |
| 381 | if time.Now().After(deadline) || loaded { |
| 382 | break |
| 383 | } |
| 384 | time.Sleep(50 * time.Millisecond) |
| 385 | } |
| 386 | return ruler |
| 387 | } |
| 388 | |
| 389 | var _ MultiTenantManager = &DefaultMultiTenantManager{} |
| 390 |
no test coverage detected