package sender
import (
"strings"
"testing"
"time"
"github.com/stretchr/testify/assert"
"rsgit.ru/rsmon/rsmon/spec/factories"
)
var (
subjectExampleDown = "Не доступен test monitor"
textBodyExampleDown = strings.TrimLeft(`
Монитор test monitor не доступен
Проверки: [http].
Ошибка: test error
Начало события: 03.01.2019 03:04:04
Недоступные проверки:
http - test check - URL не указан (testerr)
`, "\n")
)
var markdownBodyExampleDown = strings.TrimLeft(`
Монитор test monitor не доступен :warning:
Проверки: [http].
Ошибка: test error
Начало события: 03.01.2019 03:04:04
Недоступные проверки:
http - test check - URL не указан (testerr)
`, "\n")
var htmlBodyExampleDown = strings.TrimLeft(`
Монитор test monitor не доступен
Проверки: [http].
Ошибка:
test error
Начало события: 03.01.2019 03:04:04
Недоступные проверки:
http - test check - URL не указан (testerr)
`, "\n")
var (
subjectExampleUp = "Снова доступен test monitor"
textBodyExampleUp = strings.TrimLeft(`
Монитор test monitor снова доступен
Проверки:
http - test check - URL не указан (testerr)
Он был недоступен 1 минуту по причине ошибки test error
Начало события: 03.01.2019 03:04:05
Окончание события: 03.01.2019 03:05:05
`, "\n")
)
var markdownBodyExampleUp = strings.TrimLeft(`
Монитор test monitor снова доступен :white_check_mark:
Проверки:
http - test check - URL не указан (testerr)
Он был недоступен 1 минуту по причине ошибки test error
Начало события: 03.01.2019 03:04:05
Окончание события: 03.01.2019 03:05:05
`, "\n")
var htmlBodyExampleUp = strings.TrimLeft(`
Монитор test monitor снова доступен
.
Проверки:
http - test check - URL не указан (testerr)
Он был недоступен 1 минуту по причине ошибки test error
Начало события: 03.01.2019 03:04:05
Окончание события: 03.01.2019 03:05:05
`, "\n")
var (
subjectExampleExp = "Скоро истекает test check (SSL сертификат) по test monitor"
textBodyExampleExp = strings.TrimLeft(`
Монитор test monitor
03.01.2019 04:04:05 истекает test check (SSL сертификат)
`, "\n")
)
var markdownBodyExampleExp = strings.TrimLeft(`
Монитор test monitor
03.01.2019 04:04:05 истекает test check (SSL сертификат)
`, "\n")
var htmlBodyExampleExp = strings.TrimLeft(`
Монитор test monitor
03.01.2019 04:04:05 истекает test check (SSL сертификат)
`, "\n")
func TestGetContent(t *testing.T) {
tn := time.Date(2019, time.January, 3, 3, 4, 5, 0, time.UTC)
message := factories.MessageFactory()
subject, textBody, markdownBody, htmlBody := GetContent(&message, tn)
// fmt.Println(subject.String())
// fmt.Println(textBody.String())
// fmt.Println(markdownBody.String())
// fmt.Println(htmlBody.String())
assert.Equal(t, subjectExampleDown, subject.String(), "rendered subject should match example")
assert.Equal(t, textBodyExampleDown, textBody.String(), "rendered textBody should match example")
assert.Equal(t, markdownBodyExampleDown, markdownBody.String(), "rendered markdownBody should match example")
assert.Equal(t, htmlBodyExampleDown, htmlBody.String(), "rendered htmlBody should match example")
}
func TestGetContentUp(t *testing.T) {
tn := time.Date(2019, time.January, 3, 3, 4, 5, 0, time.UTC)
ts := time.Date(2019, time.January, 3, 3, 4, 5, 0, time.UTC)
te := time.Date(2019, time.January, 3, 3, 5, 5, 0, time.UTC)
message := factories.MessageFactory()
message.Kind = "up"
message.Events[0].StartTime = &ts
message.Events[0].EndTime = &te
subject, textBody, markdownBody, htmlBody := GetContent(&message, tn)
// fmt.Println(subject.String())
// fmt.Println(textBody.String())
// fmt.Println(markdownBody.String())
// fmt.Println(htmlBody.String())
assert.Equal(t, subjectExampleUp, subject.String(), "rendered subject should match example")
assert.Equal(t, textBodyExampleUp, textBody.String(), "rendered textBody should match example")
assert.Equal(t, markdownBodyExampleUp, markdownBody.String(), "rendered markdownBody should match example")
assert.Equal(t, htmlBodyExampleUp, htmlBody.String(), "rendered htmlBody should match example")
}
func TestGetContentExp(t *testing.T) {
tn := time.Date(2019, time.January, 3, 3, 4, 5, 0, time.UTC)
message := factories.ExpMessageFactory()
in1h := tn.Add(1 * time.Hour)
message.Check.Expires = &in1h
message.Check.Kind = "ssl"
subject, textBody, _, htmlBody := GetContent(&message, tn)
subject, textBody, markdownBody, htmlBody := GetContent(&message, tn)
// fmt.Println(subject.String())
// fmt.Println(textBody.String())
// fmt.Println(markdownBody.String())
// fmt.Println(htmlBody.String())
assert.Equal(t, subjectExampleExp, subject.String(), "rendered subject should match example")
assert.Equal(t, textBodyExampleExp, textBody.String(), "rendered textBody should match example")
assert.Equal(t, markdownBodyExampleExp, markdownBody.String(), "rendered markdownBody should match example")
assert.Equal(t, htmlBodyExampleExp, htmlBody.String(), "rendered htmlBody should match example")
}