mirror of https://github.com/grafana/grafana
Alerting: Move BaseInterval and MinInterval to UnifiedAlerting config (#45107)
* use base interval if legacy value is less than the base intervalpull/45344/head
parent
4f815e3d8e
commit
095ea44e97
@ -1,73 +0,0 @@ |
||||
package ngalert |
||||
|
||||
import ( |
||||
"testing" |
||||
"time" |
||||
|
||||
"github.com/grafana/grafana/pkg/infra/log" |
||||
"github.com/grafana/grafana/pkg/setting" |
||||
"github.com/stretchr/testify/require" |
||||
) |
||||
|
||||
func TestGetRuleDefaultIntervalSeconds(t *testing.T) { |
||||
testCases := []struct { |
||||
desc string |
||||
alertingMinIntervalCfg time.Duration |
||||
// the expected default rule interval (applied if a rule interval is missing)
|
||||
expDefaultInterval time.Duration |
||||
// the expected minimum rule interval (enforced if a rule interval is lower than this value; it is used also for computing the default rule interval)
|
||||
expMinInterval time.Duration |
||||
}{ |
||||
{ |
||||
desc: "negative min rule interval", |
||||
alertingMinIntervalCfg: -1, |
||||
expDefaultInterval: time.Duration(defaultIntervalSeconds) * time.Second, // 60s
|
||||
expMinInterval: defaultBaseIntervalSeconds, // 10s
|
||||
}, |
||||
{ |
||||
desc: "zero min rule interval", |
||||
alertingMinIntervalCfg: 0, |
||||
expDefaultInterval: time.Duration(defaultIntervalSeconds) * time.Second, // 60s
|
||||
expMinInterval: defaultBaseIntervalSeconds, // 10s
|
||||
}, |
||||
{ |
||||
desc: "min rule interval not divided exactly by the scheduler interval", |
||||
alertingMinIntervalCfg: 1, |
||||
expDefaultInterval: time.Duration(defaultIntervalSeconds) * time.Second, // 60s
|
||||
expMinInterval: defaultBaseIntervalSeconds, // 10s
|
||||
}, |
||||
{ |
||||
desc: "min rule interval equals base scheduler interval", |
||||
alertingMinIntervalCfg: defaultBaseIntervalSeconds, // 10s
|
||||
expDefaultInterval: time.Duration(defaultIntervalSeconds) * time.Second, // 60s
|
||||
expMinInterval: defaultBaseIntervalSeconds, // 10s
|
||||
}, |
||||
{ |
||||
desc: "valid min rule interval less than default rule interval", |
||||
alertingMinIntervalCfg: time.Duration(defaultIntervalSeconds-defaultBaseIntervalSeconds) * time.Second, // 50s
|
||||
expDefaultInterval: time.Duration(defaultIntervalSeconds) * time.Second, // 60s
|
||||
expMinInterval: time.Duration(defaultIntervalSeconds-defaultBaseIntervalSeconds) * time.Second, // 50s
|
||||
}, |
||||
{ |
||||
desc: "valid min rule interval greater than default rule interval", |
||||
alertingMinIntervalCfg: time.Duration(defaultIntervalSeconds+defaultBaseIntervalSeconds) * time.Second, // 70s
|
||||
expDefaultInterval: time.Duration(defaultIntervalSeconds+defaultBaseIntervalSeconds) * time.Second, // 70s
|
||||
expMinInterval: time.Duration(defaultIntervalSeconds+defaultBaseIntervalSeconds) * time.Second, // 70s
|
||||
}, |
||||
} |
||||
|
||||
for _, tc := range testCases { |
||||
t.Run(tc.desc, func(t *testing.T) { |
||||
alertNG := AlertNG{ |
||||
Log: log.New("test"), |
||||
Cfg: &setting.Cfg{ |
||||
UnifiedAlerting: setting.UnifiedAlertingSettings{ |
||||
MinInterval: tc.alertingMinIntervalCfg, |
||||
}, |
||||
}, |
||||
} |
||||
require.Equal(t, tc.expDefaultInterval, alertNG.getRuleDefaultInterval()) |
||||
require.Equal(t, tc.expMinInterval, alertNG.getRuleMinInterval()) |
||||
}) |
||||
} |
||||
} |
Loading…
Reference in new issue