Consolidate store tests into interface package + Fix issues

This commit is contained in:
TwinProduction
2021-07-16 19:12:14 -04:00
committed by Chris
parent 2ef9329fa6
commit 2c95cce7b3
6 changed files with 561 additions and 445 deletions

View File

@ -61,15 +61,8 @@ func AddResult(ss *core.ServiceStatus, result *core.Result) {
}
if len(ss.Results) > 0 {
// Check if there's any change since the last result
// OR there's only 1 event, which only happens when there's a start event
if ss.Results[len(ss.Results)-1].Success != result.Success || len(ss.Events) == 1 {
event := &core.Event{Timestamp: result.Timestamp}
if result.Success {
event.Type = core.EventHealthy
} else {
event.Type = core.EventUnhealthy
}
ss.Events = append(ss.Events, event)
if ss.Results[len(ss.Results)-1].Success != result.Success {
ss.Events = append(ss.Events, generateEventBasedOnResultSuccess(result))
if len(ss.Events) > core.MaximumNumberOfEvents {
// Doing ss.Events[1:] would usually be sufficient, but in the case where for some reason, the slice has
// more than one extra element, we can get rid of all of them at once and thus returning the slice to a
@ -77,6 +70,9 @@ func AddResult(ss *core.ServiceStatus, result *core.Result) {
ss.Events = ss.Events[len(ss.Events)-core.MaximumNumberOfEvents:]
}
}
} else {
// This is the first result, so we need to add the first healthy/unhealthy event
ss.Events = append(ss.Events, generateEventBasedOnResultSuccess(result))
}
ss.Results = append(ss.Results, result)
if len(ss.Results) > core.MaximumNumberOfResults {
@ -87,3 +83,13 @@ func AddResult(ss *core.ServiceStatus, result *core.Result) {
}
processUptimeAfterResult(ss.Uptime, result)
}
func generateEventBasedOnResultSuccess(result *core.Result) *core.Event {
event := &core.Event{Timestamp: result.Timestamp}
if result.Success {
event.Type = core.EventHealthy
} else {
event.Type = core.EventUnhealthy
}
return event
}