mirror of
https://github.com/TwiN/gatus.git
synced 2024-11-24 17:04:42 +01:00
d058d7a54b
BREAKING CHANGE: It used to default to false, which meant that users had to explicitly set endpoints[].alerts[].enabled to true
86 lines
2.9 KiB
Go
86 lines
2.9 KiB
Go
package alert
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestAlert_ValidateAndSetDefaults(t *testing.T) {
|
|
invalidDescription := "\""
|
|
scenarios := []struct {
|
|
name string
|
|
alert Alert
|
|
expectedError error
|
|
expectedSuccessThreshold int
|
|
expectedFailureThreshold int
|
|
}{
|
|
{
|
|
name: "valid-empty",
|
|
alert: Alert{
|
|
Description: nil,
|
|
FailureThreshold: 0,
|
|
SuccessThreshold: 0,
|
|
},
|
|
expectedError: nil,
|
|
expectedFailureThreshold: 3,
|
|
expectedSuccessThreshold: 2,
|
|
},
|
|
{
|
|
name: "invalid-description",
|
|
alert: Alert{
|
|
Description: &invalidDescription,
|
|
FailureThreshold: 10,
|
|
SuccessThreshold: 5,
|
|
},
|
|
expectedError: ErrAlertWithInvalidDescription,
|
|
expectedFailureThreshold: 10,
|
|
expectedSuccessThreshold: 5,
|
|
},
|
|
}
|
|
for _, scenario := range scenarios {
|
|
t.Run(scenario.name, func(t *testing.T) {
|
|
if err := scenario.alert.ValidateAndSetDefaults(); err != scenario.expectedError {
|
|
t.Errorf("expected error %v, got %v", scenario.expectedError, err)
|
|
}
|
|
if scenario.alert.SuccessThreshold != scenario.expectedSuccessThreshold {
|
|
t.Errorf("expected success threshold %v, got %v", scenario.expectedSuccessThreshold, scenario.alert.SuccessThreshold)
|
|
}
|
|
if scenario.alert.FailureThreshold != scenario.expectedFailureThreshold {
|
|
t.Errorf("expected failure threshold %v, got %v", scenario.expectedFailureThreshold, scenario.alert.FailureThreshold)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestAlert_IsEnabled(t *testing.T) {
|
|
if !(Alert{Enabled: nil}).IsEnabled() {
|
|
t.Error("alert.IsEnabled() should've returned true, because Enabled was set to nil")
|
|
}
|
|
if value := false; (Alert{Enabled: &value}).IsEnabled() {
|
|
t.Error("alert.IsEnabled() should've returned false, because Enabled was set to false")
|
|
}
|
|
if value := true; !(Alert{Enabled: &value}).IsEnabled() {
|
|
t.Error("alert.IsEnabled() should've returned true, because Enabled was set to true")
|
|
}
|
|
}
|
|
|
|
func TestAlert_GetDescription(t *testing.T) {
|
|
if (Alert{Description: nil}).GetDescription() != "" {
|
|
t.Error("alert.GetDescription() should've returned an empty string, because Description was set to nil")
|
|
}
|
|
if value := "description"; (Alert{Description: &value}).GetDescription() != value {
|
|
t.Error("alert.GetDescription() should've returned false, because Description was set to 'description'")
|
|
}
|
|
}
|
|
|
|
func TestAlert_IsSendingOnResolved(t *testing.T) {
|
|
if (Alert{SendOnResolved: nil}).IsSendingOnResolved() {
|
|
t.Error("alert.IsSendingOnResolved() should've returned false, because SendOnResolved was set to nil")
|
|
}
|
|
if value := false; (Alert{SendOnResolved: &value}).IsSendingOnResolved() {
|
|
t.Error("alert.IsSendingOnResolved() should've returned false, because SendOnResolved was set to false")
|
|
}
|
|
if value := true; !(Alert{SendOnResolved: &value}).IsSendingOnResolved() {
|
|
t.Error("alert.IsSendingOnResolved() should've returned true, because SendOnResolved was set to true")
|
|
}
|
|
}
|