From 1b0705982581f63dc74250c89672a3ec4e84aae5 Mon Sep 17 00:00:00 2001 From: Ian Fijolek Date: Fri, 4 Oct 2019 16:23:48 -0700 Subject: [PATCH] Make AlertDown required for a Monitor --- monitor.go | 5 ++++- monitor_test.go | 12 ++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/monitor.go b/monitor.go index 558bdc9..2b7b4ef 100644 --- a/monitor.go +++ b/monitor.go @@ -31,7 +31,10 @@ type Monitor struct { func (monitor Monitor) IsValid() bool { atLeastOneCommand := (monitor.CommandShell != "" || monitor.Command != nil) atMostOneCommand := (monitor.CommandShell == "" || monitor.Command == nil) - return atLeastOneCommand && atMostOneCommand && monitor.getAlertAfter() > 0 + return (atLeastOneCommand && + atMostOneCommand && + monitor.getAlertAfter() > 0 && + monitor.AlertDown != nil) } // ShouldCheck returns a boolean indicating if the Monitor is ready to be diff --git a/monitor_test.go b/monitor_test.go index a645e11..9168cd1 100644 --- a/monitor_test.go +++ b/monitor_test.go @@ -13,16 +13,16 @@ func TestMonitorIsValid(t *testing.T) { expected bool name string }{ - {Monitor{Command: []string{"echo", "test"}}, true, "Command only"}, - {Monitor{CommandShell: "echo test"}, true, "CommandShell only"}, - {Monitor{}, false, "No commands"}, + {Monitor{Command: []string{"echo", "test"}, AlertDown: []string{"log"}}, true, "Command only"}, + {Monitor{CommandShell: "echo test", AlertDown: []string{"log"}}, true, "CommandShell only"}, + {Monitor{Command: []string{"echo", "test"}}, false, "No AlertDown"}, + {Monitor{AlertDown: []string{"log"}}, false, "No commands"}, { - Monitor{Command: []string{"echo", "test"}, CommandShell: "echo test"}, + Monitor{Command: []string{"echo", "test"}, CommandShell: "echo test", AlertDown: []string{"log"}}, false, "Both commands", }, - {Monitor{AlertAfter: -1}, false, "Invalid alert threshold, -1"}, - {Monitor{AlertAfter: 0}, false, "Invalid alert threshold, 0"}, + {Monitor{Command: []string{"echo", "test"}, AlertDown: []string{"log"}, AlertAfter: -1}, false, "Invalid alert threshold, -1"}, } for _, c := range cases {