github.com/muhammadn/cortex@v1.9.1-0.20220510110439-46bb7000d03d/pkg/alertmanager/merger/v2_silence_id_test.go (about) 1 package merger 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 ) 8 9 func TestV2SilenceId_ReturnsNewestSilence(t *testing.T) { 10 11 // We re-use MergeV2Silences so we rely on that being primarily tested elsewhere. 12 13 in := [][]byte{ 14 []byte(`{"id":"77b580dd-1d9c-4b7e-9bba-13ac173cb4e5","status":{"state":"expired"},` + 15 `"updatedAt":"2021-04-28T17:31:02.215Z","comment":"This is the newest silence",` + 16 `"createdBy":"","endsAt":"2021-04-28T17:31:02.215Z","matchers":` + 17 `[{"isEqual":true,"isRegex":false,"name":"instance","value":"prometheus-one"}],` + 18 `"startsAt":"2021-04-28T17:31:01.725Z"}`), 19 []byte(`{"id":"77b580dd-1d9c-4b7e-9bba-13ac173cb4e5","status":{"state":"expired"},` + 20 `"updatedAt":"2021-04-28T17:31:02.000Z","comment":"Silence Comment #1",` + 21 `"createdBy":"","endsAt":"2021-04-28T17:31:02.215Z","matchers":` + 22 `[{"isEqual":true,"isRegex":false,"name":"instance","value":"prometheus-one"}],` + 23 `"startsAt":"2021-04-28T17:31:01.725Z"}`), 24 []byte(`{"id":"77b580dd-1d9c-4b7e-9bba-13ac173cb4e5","status":{"state":"expired"},` + 25 `"updatedAt":"2021-04-28T17:31:02.000Z","comment":"Silence Comment #1",` + 26 `"createdBy":"","endsAt":"2021-04-28T17:31:02.215Z","matchers":` + 27 `[{"isEqual":true,"isRegex":false,"name":"instance","value":"prometheus-one"}],` + 28 `"startsAt":"2021-04-28T17:31:01.725Z"}`), 29 } 30 31 expected := []byte(`{"id":"77b580dd-1d9c-4b7e-9bba-13ac173cb4e5","status":{"state":"expired"},` + 32 `"updatedAt":"2021-04-28T17:31:02.215Z","comment":"This is the newest silence",` + 33 `"createdBy":"","endsAt":"2021-04-28T17:31:02.215Z","matchers":` + 34 `[{"isEqual":true,"isRegex":false,"name":"instance","value":"prometheus-one"}],` + 35 `"startsAt":"2021-04-28T17:31:01.725Z"}`) 36 37 out, err := V2SilenceID{}.MergeResponses(in) 38 require.NoError(t, err) 39 require.Equal(t, string(expected), string(out)) 40 } 41 42 func TestV2SilenceID_InvalidDifferentIDs(t *testing.T) { 43 44 // Responses containing silences with different IDs is invalid input. 45 46 in := [][]byte{ 47 []byte(`{"id":"77b580dd-1d9c-4b7e-9bba-13ac173cb4e5","status":{"state":"expired"},` + 48 `"updatedAt":"2021-04-28T17:31:02.215Z","comment":"Silence Comment #1",` + 49 `"createdBy":"","endsAt":"2021-04-28T17:31:02.215Z","matchers":` + 50 `[{"isEqual":true,"isRegex":false,"name":"instance","value":"prometheus-one"}],` + 51 `"startsAt":"2021-04-28T17:31:01.725Z"}`), 52 []byte(`{"id":"261248d1-4ff7-4cf1-9957-850c65f4e48b","status":{"state":"expired"},` + 53 `"updatedAt":"2021-04-28T17:31:02.082Z","comment":"Silence Comment #3",` + 54 `"createdBy":"","endsAt":"2021-04-28T17:31:02.082Z","matchers":` + 55 `[{"isEqual":true,"isRegex":false,"name":"instance","value":"prometheus-one"}],` + 56 `"startsAt":"2021-04-28T17:31:01.735Z"}`), 57 } 58 59 _, err := V2SilenceID{}.MergeResponses(in) 60 require.Error(t, err) 61 }