statping/notifiers/twilio_test.go

71 lines
1.8 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-17 22:13:42 +00:00
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
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-17 22:13:42 +00:00
t.Log("twilio notifier testing skipped, missing TWILIO_SID environment variable")
t.SkipNow()
}
currentCount = CountNotifiers()
2018-09-17 22:13:42 +00:00
t.Run("Load Twilio", func(t *testing.T) {
2018-09-15 22:39:17 +00:00
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-17 22:13:42 +00:00
t.Run("Load Twilio Notifier", func(t *testing.T) {
notifier.Load()
})
2018-09-17 22:13:42 +00:00
t.Run("Twilio Within Limits", func(t *testing.T) {
2018-09-15 22:39:17 +00:00
ok, err := twilioNotifier.WithinLimits()
assert.Nil(t, err)
assert.True(t, ok)
})
2018-09-17 22:13:42 +00:00
t.Run("Twilio Send", func(t *testing.T) {
2018-09-15 22:39:17 +00:00
err := twilioNotifier.Send(twilioMessage)
assert.Nil(t, err)
})
2018-09-17 22:13:42 +00:00
t.Run("Twilio Queue", func(t *testing.T) {
2018-09-15 22:39:17 +00:00
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))
})
}