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") }