Add tests for Slack alert body with endpoint that has a group
This commit is contained in:
		| @ -79,7 +79,7 @@ func TestAlertProvider_Send(t *testing.T) { | ||||
| 		t.Run(scenario.Name, func(t *testing.T) { | ||||
| 			client.InjectHTTPClient(&http.Client{Transport: scenario.MockRoundTripper}) | ||||
| 			err := scenario.Provider.Send( | ||||
| 				&core.Endpoint{Name: "endpoint-name"}, | ||||
| 				&core.Endpoint{Name: "name"}, | ||||
| 				&scenario.Alert, | ||||
| 				&core.Result{ | ||||
| 					ConditionResults: []*core.ConditionResult{ | ||||
| @ -105,6 +105,7 @@ func TestAlertProvider_buildRequestBody(t *testing.T) { | ||||
| 	scenarios := []struct { | ||||
| 		Name         string | ||||
| 		Provider     AlertProvider | ||||
| 		Endpoint     core.Endpoint | ||||
| 		Alert        alert.Alert | ||||
| 		Resolved     bool | ||||
| 		ExpectedBody string | ||||
| @ -112,22 +113,40 @@ func TestAlertProvider_buildRequestBody(t *testing.T) { | ||||
| 		{ | ||||
| 			Name:         "triggered", | ||||
| 			Provider:     AlertProvider{}, | ||||
| 			Endpoint:     core.Endpoint{Name: "name"}, | ||||
| 			Alert:        alert.Alert{Description: &firstDescription, SuccessThreshold: 5, FailureThreshold: 3}, | ||||
| 			Resolved:     false, | ||||
| 			ExpectedBody: "{\n  \"text\": \"\",\n  \"attachments\": [\n    {\n      \"title\": \":helmet_with_white_cross: Gatus\",\n      \"text\": \"An alert for *endpoint-name* has been triggered due to having failed 3 time(s) in a row:\\n> description-1\",\n      \"short\": false,\n      \"color\": \"#DD0000\",\n      \"fields\": [\n        {\n          \"title\": \"Condition results\",\n          \"value\": \":x: - `[CONNECTED] == true`\\n:x: - `[STATUS] == 200`\\n\",\n          \"short\": false\n        }\n      ]\n    }\n  ]\n}", | ||||
| 			ExpectedBody: "{\n  \"text\": \"\",\n  \"attachments\": [\n    {\n      \"title\": \":helmet_with_white_cross: Gatus\",\n      \"text\": \"An alert for *name* has been triggered due to having failed 3 time(s) in a row:\\n> description-1\",\n      \"short\": false,\n      \"color\": \"#DD0000\",\n      \"fields\": [\n        {\n          \"title\": \"Condition results\",\n          \"value\": \":x: - `[CONNECTED] == true`\\n:x: - `[STATUS] == 200`\\n\",\n          \"short\": false\n        }\n      ]\n    }\n  ]\n}", | ||||
| 		}, | ||||
| 		{ | ||||
| 			Name:         "triggered-with-group", | ||||
| 			Provider:     AlertProvider{}, | ||||
| 			Endpoint:     core.Endpoint{Name: "name", Group: "group"}, | ||||
| 			Alert:        alert.Alert{Description: &firstDescription, SuccessThreshold: 5, FailureThreshold: 3}, | ||||
| 			Resolved:     false, | ||||
| 			ExpectedBody: "{\n  \"text\": \"\",\n  \"attachments\": [\n    {\n      \"title\": \":helmet_with_white_cross: Gatus\",\n      \"text\": \"An alert for *group/name* has been triggered due to having failed 3 time(s) in a row:\\n> description-1\",\n      \"short\": false,\n      \"color\": \"#DD0000\",\n      \"fields\": [\n        {\n          \"title\": \"Condition results\",\n          \"value\": \":x: - `[CONNECTED] == true`\\n:x: - `[STATUS] == 200`\\n\",\n          \"short\": false\n        }\n      ]\n    }\n  ]\n}", | ||||
| 		}, | ||||
| 		{ | ||||
| 			Name:         "resolved", | ||||
| 			Provider:     AlertProvider{}, | ||||
| 			Endpoint:     core.Endpoint{Name: "name"}, | ||||
| 			Alert:        alert.Alert{Description: &secondDescription, SuccessThreshold: 5, FailureThreshold: 3}, | ||||
| 			Resolved:     true, | ||||
| 			ExpectedBody: "{\n  \"text\": \"\",\n  \"attachments\": [\n    {\n      \"title\": \":helmet_with_white_cross: Gatus\",\n      \"text\": \"An alert for *endpoint-name* has been resolved after passing successfully 5 time(s) in a row:\\n> description-2\",\n      \"short\": false,\n      \"color\": \"#36A64F\",\n      \"fields\": [\n        {\n          \"title\": \"Condition results\",\n          \"value\": \":white_check_mark: - `[CONNECTED] == true`\\n:white_check_mark: - `[STATUS] == 200`\\n\",\n          \"short\": false\n        }\n      ]\n    }\n  ]\n}", | ||||
| 			ExpectedBody: "{\n  \"text\": \"\",\n  \"attachments\": [\n    {\n      \"title\": \":helmet_with_white_cross: Gatus\",\n      \"text\": \"An alert for *name* has been resolved after passing successfully 5 time(s) in a row:\\n> description-2\",\n      \"short\": false,\n      \"color\": \"#36A64F\",\n      \"fields\": [\n        {\n          \"title\": \"Condition results\",\n          \"value\": \":white_check_mark: - `[CONNECTED] == true`\\n:white_check_mark: - `[STATUS] == 200`\\n\",\n          \"short\": false\n        }\n      ]\n    }\n  ]\n}", | ||||
| 		}, | ||||
| 		{ | ||||
| 			Name:         "resolved-with-group", | ||||
| 			Provider:     AlertProvider{}, | ||||
| 			Endpoint:     core.Endpoint{Name: "name", Group: "group"}, | ||||
| 			Alert:        alert.Alert{Description: &secondDescription, SuccessThreshold: 5, FailureThreshold: 3}, | ||||
| 			Resolved:     true, | ||||
| 			ExpectedBody: "{\n  \"text\": \"\",\n  \"attachments\": [\n    {\n      \"title\": \":helmet_with_white_cross: Gatus\",\n      \"text\": \"An alert for *group/name* has been resolved after passing successfully 5 time(s) in a row:\\n> description-2\",\n      \"short\": false,\n      \"color\": \"#36A64F\",\n      \"fields\": [\n        {\n          \"title\": \"Condition results\",\n          \"value\": \":white_check_mark: - `[CONNECTED] == true`\\n:white_check_mark: - `[STATUS] == 200`\\n\",\n          \"short\": false\n        }\n      ]\n    }\n  ]\n}", | ||||
| 		}, | ||||
| 	} | ||||
| 	for _, scenario := range scenarios { | ||||
| 		t.Run(scenario.Name, func(t *testing.T) { | ||||
| 			body := scenario.Provider.buildRequestBody( | ||||
| 				&core.Endpoint{Name: "endpoint-name"}, | ||||
| 				&scenario.Endpoint, | ||||
| 				&scenario.Alert, | ||||
| 				&core.Result{ | ||||
| 					ConditionResults: []*core.ConditionResult{ | ||||
|  | ||||
		Reference in New Issue
	
	Block a user