mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
fix(alerting): add a proper compare func for location in mute timings (#82153)
This commit is contained in:
parent
74d7cd2cad
commit
4dc1ebbb66
@ -3,6 +3,7 @@ package api
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/google/go-cmp/cmp"
|
||||
"github.com/google/go-cmp/cmp/cmpopts"
|
||||
@ -137,7 +138,14 @@ func checkMuteTimes(currentConfig apimodels.GettableUserConfig, newConfig apimod
|
||||
return fmt.Errorf("cannot delete provisioned mute time '%s'", muteTime.Name)
|
||||
}
|
||||
reporter := cmputil.DiffReporter{}
|
||||
options := []cmp.Option{cmp.Reporter(&reporter), cmpopts.EquateEmpty()}
|
||||
options := []cmp.Option{
|
||||
cmp.Reporter(&reporter),
|
||||
cmp.Comparer(func(a, b *time.Location) bool {
|
||||
// Check if both are nil or both have the same string representation
|
||||
return (a == nil && b == nil) || (a != nil && b != nil && a.String() == b.String())
|
||||
}),
|
||||
cmpopts.EquateEmpty(),
|
||||
}
|
||||
timesEqual := cmp.Equal(muteTime.TimeIntervals, postedMT.TimeIntervals, options...)
|
||||
if !timesEqual {
|
||||
return fmt.Errorf("cannot save provisioned mute time '%s'", muteTime.Name)
|
||||
|
@ -2,6 +2,7 @@ package api
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
amConfig "github.com/prometheus/alertmanager/config"
|
||||
"github.com/prometheus/alertmanager/pkg/labels"
|
||||
@ -563,6 +564,7 @@ func defaultInterval(t *testing.T) []timeinterval.TimeInterval {
|
||||
t.Helper()
|
||||
return []timeinterval.TimeInterval{
|
||||
{
|
||||
Location: &timeinterval.Location{Location: time.Local},
|
||||
Years: []timeinterval.YearRange{
|
||||
{
|
||||
InclusiveRange: timeinterval.InclusiveRange{
|
||||
|
Loading…
Reference in New Issue
Block a user