alertmanager/manager/notifier_test.go

59 lines
1.6 KiB
Go

// Copyright 2013 Prometheus Team
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package manager
import (
"bytes"
"testing"
)
func TestWriteEmailBody(t *testing.T) {
event := &Alert{
Summary: "Testsummary",
Description: "Test alert description, something went wrong here.",
Labels: AlertLabelSet{
"alertname": "TestAlert",
"grouping_label1": "grouping_value1",
"grouping_label2": "grouping_value2",
},
Payload: AlertPayload{
"payload_label1": "payload_value1",
"payload_label2": "payload_value2",
},
}
buf := &bytes.Buffer{}
writeEmailBody(buf, "from@prometheus.io", "to@prometheus.io", event)
expected := `From: Prometheus Alertmanager <from@prometheus.io>
To: to@prometheus.io
Subject: [ALERT] TestAlert: Testsummary
Test alert description, something went wrong here.
Grouping labels:
alertname = "TestAlert"
grouping_label1 = "grouping_value1"
grouping_label2 = "grouping_value2"
Payload labels:
payload_label1 = "payload_value1"
payload_label2 = "payload_value2"`
if buf.String() != expected {
t.Fatalf("Expected:\n%s\n\nGot:\n%s", expected, buf.String())
}
}