From 18d28fc3627c1ef5bcb7e764b452829b742817cb Mon Sep 17 00:00:00 2001 From: TwiN Date: Sun, 12 Dec 2021 16:58:48 -0500 Subject: [PATCH] Add tests for validation of description --- alerting/alert/alert_test.go | 51 +++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/alerting/alert/alert_test.go b/alerting/alert/alert_test.go index a061a53d..b764aeb0 100644 --- a/alerting/alert/alert_test.go +++ b/alerting/alert/alert_test.go @@ -1,6 +1,55 @@ package alert -import "testing" +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() {