Некоторые проверки не удались
CI / test (push) Successful in 2m5s
Docker / Build and publish worker image (push) Failing after 31s
61 строка
1.4 KiB
Go
61 строка
1.4 KiB
Go
package factories
|
|
|
|
import (
|
|
"github.com/icrowley/fake"
|
|
|
|
"rocketgit.ru/rsmon/worker/app/models"
|
|
)
|
|
|
|
// MonitorFactory provides functionality.
|
|
func MonitorFactory(group *models.Group, name string) models.Monitor {
|
|
if name == "" {
|
|
name = fake.Company()
|
|
}
|
|
host := fake.DomainName()
|
|
monitor := models.Monitor{
|
|
Enabled: true,
|
|
Name: &name,
|
|
Host: host,
|
|
}
|
|
if group == nil {
|
|
g := GroupFactory(nil)
|
|
group = &g
|
|
}
|
|
monitor.Group = group
|
|
monitor.GroupID = group.ID
|
|
|
|
return monitor
|
|
}
|
|
|
|
// PersistedMonitor provides functionality.
|
|
func PersistedMonitor(group *models.Group) models.Monitor {
|
|
monitor := MonitorFactory(group, "")
|
|
|
|
if monitor.Group.ID == 0 {
|
|
err := models.DB().Save(&monitor.Group).Error
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
monitor.GroupID = monitor.Group.ID
|
|
}
|
|
err := models.DB().Save(&monitor).Error
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return monitor
|
|
}
|
|
|
|
// MonitorWithNotification provides functionality.
|
|
func MonitorWithNotification() (models.Contact, models.Notification, models.Monitor) {
|
|
user := PersistedUser("test@test.ru", "123")
|
|
account, err := models.CreateAccountForUser(fake.Company(), &user)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
contact := PersistedContact(account, &user)
|
|
group := PersistedGroup(account)
|
|
notification := PersistedNotification(account, []int64{contact.ID}, []int64{group.ID}, 300, false)
|
|
monitor := PersistedMonitor(&group)
|
|
return contact, notification, monitor
|
|
}
|