statping/notifiers/twilio_test.go

66 lines
1.7 KiB
Go
Raw Normal View History

package notifiers
import (
"github.com/hunterlong/statup/core/notifier"
"github.com/stretchr/testify/assert"
"os"
"testing"
"time"
)
var (
TWILIO_SID = os.Getenv("TWILIO_SID")
TWILIO_SECRET = os.Getenv("TWILIO_SECRET")
TWILIO_FROM = os.Getenv("TWILIO_FROM")
TWILIO_TO = os.Getenv("TWILIO_TO")
2018-09-15 22:39:17 +00:00
twilioMessage = "The twilioNotifier notifier on Statup has been tested!"
)
func init() {
2018-09-15 22:39:17 +00:00
twilioNotifier.ApiKey = TWILIO_SID
twilioNotifier.ApiSecret = TWILIO_SECRET
twilioNotifier.Var1 = TWILIO_TO
twilioNotifier.Var2 = TWILIO_FROM
}
func TestTwilioNotifier(t *testing.T) {
t.Parallel()
if TWILIO_SID == "" || TWILIO_SECRET == "" || TWILIO_FROM == "" {
2018-09-15 22:39:17 +00:00
t.Log("twilioNotifier notifier testing skipped, missing TWILIO_SID environment variable")
t.SkipNow()
}
currentCount = CountNotifiers()
2018-09-15 22:39:17 +00:00
t.Run("Load twilioNotifier", func(t *testing.T) {
twilioNotifier.ApiKey = TWILIO_SID
twilioNotifier.Delay = time.Duration(100 * time.Millisecond)
err := notifier.AddNotifier(twilioNotifier)
assert.Nil(t, err)
2018-09-15 22:39:17 +00:00
assert.Equal(t, "Hunter Long", twilioNotifier.Author)
assert.Equal(t, TWILIO_SID, twilioNotifier.ApiKey)
})
2018-09-15 22:39:17 +00:00
t.Run("Load twilioNotifier Notifier", func(t *testing.T) {
notifier.Load()
})
2018-09-15 22:39:17 +00:00
t.Run("twilioNotifier Within Limits", func(t *testing.T) {
ok, err := twilioNotifier.WithinLimits()
assert.Nil(t, err)
assert.True(t, ok)
})
2018-09-15 22:39:17 +00:00
t.Run("twilioNotifier Send", func(t *testing.T) {
err := twilioNotifier.Send(twilioMessage)
assert.Nil(t, err)
})
2018-09-15 22:39:17 +00:00
t.Run("twilioNotifier Queue", func(t *testing.T) {
go notifier.Queue(twilioNotifier)
time.Sleep(1 * time.Second)
2018-09-15 22:39:17 +00:00
assert.Equal(t, TWILIO_SID, twilioNotifier.ApiKey)
assert.Equal(t, 0, len(twilioNotifier.Queue))
})
}