(t *testing.T)
| 262 | } |
| 263 | |
| 264 | func TestBackupRules(t *testing.T) { |
| 265 | dir := t.TempDir() |
| 266 | reg := prometheus.NewPedanticRegistry() |
| 267 | evalMetrics := NewRuleEvalMetrics(Config{RulePath: dir, EnableQueryStats: true}, reg) |
| 268 | waitDurations := []time.Duration{ |
| 269 | 1 * time.Millisecond, |
| 270 | 1 * time.Millisecond, |
| 271 | } |
| 272 | ruleManagerFactory := RuleManagerFactory(nil, waitDurations) |
| 273 | config := Config{RulePath: dir} |
| 274 | config.Ring.ReplicationFactor = 3 |
| 275 | m, err := NewDefaultMultiTenantManager(config, &ruleLimits{}, ruleManagerFactory, evalMetrics, reg, log.NewNopLogger()) |
| 276 | require.NoError(t, err) |
| 277 | |
| 278 | const user1 = "testUser" |
| 279 | const user2 = "testUser2" |
| 280 | |
| 281 | require.Equal(t, 0, len(m.GetBackupRules(user1))) |
| 282 | require.Equal(t, 0, len(m.GetBackupRules(user2))) |
| 283 | |
| 284 | userRules := map[string]rulespb.RuleGroupList{ |
| 285 | user1: { |
| 286 | &rulespb.RuleGroupDesc{ |
| 287 | Name: "group1", |
| 288 | Namespace: "ns", |
| 289 | Interval: 1 * time.Minute, |
| 290 | User: user1, |
| 291 | }, |
| 292 | }, |
| 293 | user2: { |
| 294 | &rulespb.RuleGroupDesc{ |
| 295 | Name: "group2", |
| 296 | Namespace: "ns", |
| 297 | Interval: 1 * time.Minute, |
| 298 | User: user1, |
| 299 | }, |
| 300 | }, |
| 301 | } |
| 302 | m.BackUpRuleGroups(context.TODO(), userRules) |
| 303 | require.Equal(t, userRules[user1], m.GetBackupRules(user1)) |
| 304 | require.Equal(t, userRules[user2], m.GetBackupRules(user2)) |
| 305 | } |
| 306 | |
| 307 | func getManager(m *DefaultMultiTenantManager, user string) RulesManager { |
| 308 | m.userManagerMtx.RLock() |
nothing calls this directly
no test coverage detected