github.com/muhammadn/cortex@v1.9.1-0.20220510110439-46bb7000d03d/pkg/alertmanager/merger/v1_silence_id_test.go (about)

     1  package merger
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  )
     8  
     9  func TestV1SilenceID_ReturnsNewestSilence(t *testing.T) {
    10  	in := [][]byte{
    11  		[]byte(`{"status":"success","data":{` +
    12  			`"id":"77b580dd-1d9c-4b7e-9bba-13ac173cb4e5",` +
    13  			`"matchers":[` +
    14  			`{` +
    15  			`"name":"instance",` +
    16  			`"value":"prometheus-one",` +
    17  			`"isRegex":false,` +
    18  			`"isEqual":true` +
    19  			`}` +
    20  			`],` +
    21  			`"startsAt":"2021-04-28T17:31:01.725956017Z",` +
    22  			`"endsAt":"2021-04-28T20:31:01.722829007+02:00",` +
    23  			`"updatedAt":"2021-04-28T17:32:01.725956017Z",` +
    24  			`"createdBy":"",` +
    25  			`"comment":"The newer silence",` +
    26  			`"status":{"state":"active"}` +
    27  			`}}`),
    28  		[]byte(`{"status":"success","data":{` +
    29  			`"id":"77b580dd-1d9c-4b7e-9bba-13ac173cb4e5",` +
    30  			`"matchers":[` +
    31  			`{` +
    32  			`"name":"instance",` +
    33  			`"value":"prometheus-one",` +
    34  			`"isRegex":false,` +
    35  			`"isEqual":true` +
    36  			`}` +
    37  			`],` +
    38  			`"startsAt":"2021-04-28T17:31:01.725956017Z",` +
    39  			`"endsAt":"2021-04-28T20:31:01.722829007+02:00",` +
    40  			`"updatedAt":"2021-04-28T17:31:01.725956017Z",` +
    41  			`"createdBy":"",` +
    42  			`"comment":"Silence Comment #1",` +
    43  			`"status":{"state":"active"}` +
    44  			`}}`),
    45  	}
    46  
    47  	expected := []byte(`{"status":"success","data":{` +
    48  		`"id":"77b580dd-1d9c-4b7e-9bba-13ac173cb4e5",` +
    49  		`"status":{"state":"active"},` +
    50  		`"updatedAt":"2021-04-28T17:32:01.725Z",` +
    51  		`"comment":"The newer silence",` +
    52  		`"createdBy":"",` +
    53  		`"endsAt":"2021-04-28T20:31:01.722+02:00",` +
    54  		`"matchers":[` +
    55  		`{` +
    56  		`"isEqual":true,` +
    57  		`"isRegex":false,` +
    58  		`"name":"instance",` +
    59  		`"value":"prometheus-one"` +
    60  		`}` +
    61  		`],` +
    62  		`"startsAt":"2021-04-28T17:31:01.725Z"` +
    63  		`}}`)
    64  
    65  	out, err := V1SilenceID{}.MergeResponses(in)
    66  	require.NoError(t, err)
    67  	require.Equal(t, string(expected), string(out))
    68  }
    69  
    70  func TestV1SilenceID_InvalidDifferentIDs(t *testing.T) {
    71  	in := [][]byte{
    72  		[]byte(`{"status":"success","data":{` +
    73  			`"id":"77b580dd-1d9c-4b7e-9bba-13ac173cb4e5",` +
    74  			`"matchers":[` +
    75  			`{` +
    76  			`"name":"instance",` +
    77  			`"value":"prometheus-one",` +
    78  			`"isRegex":false,` +
    79  			`"isEqual":true` +
    80  			`}` +
    81  			`],` +
    82  			`"startsAt":"2021-04-28T17:31:01.725956017Z",` +
    83  			`"endsAt":"2021-04-28T20:31:01.722829007+02:00",` +
    84  			`"updatedAt":"2021-04-28T17:32:01.725956017Z",` +
    85  			`"createdBy":"",` +
    86  			`"comment":"Silence Comment #1",` +
    87  			`"status":{"state":"active"}` +
    88  			`}}`),
    89  		[]byte(`{"status":"success","data":{` +
    90  			`"id":"261248d1-4ff7-4cf1-9957-850c65f4e48b",` +
    91  			`"matchers":[` +
    92  			`{` +
    93  			`"name":"instance",` +
    94  			`"value":"prometheus-one",` +
    95  			`"isRegex":false,` +
    96  			`"isEqual":true` +
    97  			`}` +
    98  			`],` +
    99  			`"startsAt":"2021-04-28T17:31:01.725956017Z",` +
   100  			`"endsAt":"2021-04-28T20:31:01.722829007+02:00",` +
   101  			`"updatedAt":"2021-04-28T17:31:01.725956017Z",` +
   102  			`"createdBy":"",` +
   103  			`"comment":"Silence Comment #2",` +
   104  			`"status":{"state":"active"}` +
   105  			`}}`),
   106  	}
   107  
   108  	_, err := V1SilenceID{}.MergeResponses(in)
   109  	require.Error(t, err)
   110  }