additional testing

pull/78/head
Hunter Long 2018-10-06 23:39:57 -07:00
parent 0a55ae08c9
commit 2aa86b28d6
9 changed files with 69 additions and 37 deletions

View File

@ -65,6 +65,10 @@ func RunInit(db string, t *testing.T) {
core.CoreApp = core.NewCore()
}
func TestMain(m *testing.M) {
m.Run()
}
func TestRunAll(t *testing.T) {
//t.Parallel()

View File

@ -84,6 +84,14 @@ func InsertSampleData() error {
s4.Create(false)
s5.Create(false)
utils.Log(1, "Sample data has finished importing")
return nil
}
// insertSampleCheckins will create 2 checkins with 60 successful hits per checkin
func insertSampleCheckins() error {
s1 := SelectService(1)
checkin1 := ReturnCheckin(&types.Checkin{
Service: s1.Id,
Interval: 300,
@ -91,6 +99,7 @@ func InsertSampleData() error {
})
checkin1.Update()
s2 := SelectService(1)
checkin2 := ReturnCheckin(&types.Checkin{
Service: s2.Id,
Interval: 900,
@ -108,9 +117,6 @@ func InsertSampleData() error {
checkHit.Create()
checkTime = checkTime.Add(10 * time.Minute)
}
utils.Log(1, "Sample data has finished importing")
return nil
}
@ -180,6 +186,7 @@ func InsertLargeSampleData() error {
insertSampleCore()
InsertSampleData()
insertSampleUsers()
insertSampleCheckins()
s6 := ReturnService(&types.Service{
Name: "JSON Lint",
Domain: "https://jsonlint.com",

View File

@ -245,6 +245,31 @@ func TestApiServiceDataHandler(t *testing.T) {
}
}
func TestApiRenewHandler(t *testing.T) {
api := core.CoreApp.ApiKey
secret := core.CoreApp.ApiSecret
rr, err := httpRequestAPI(t, "GET", "/api/renew", nil)
assert.Nil(t, err)
body := rr.Body.String()
var obj apiResponse
formatJSON(body, &obj)
assert.Equal(t, 303, rr.Code)
assert.NotEqual(t, api, core.CoreApp.ApiKey)
assert.NotEqual(t, secret, core.CoreApp.ApiSecret)
}
func TestApiCheckinHandler(t *testing.T) {
t.SkipNow()
service := core.SelectService(1)
checkin := service.Checkins()
rr, err := httpRequestAPI(t, "GET", "/api/checkin/"+checkin[0].ApiKey, nil)
assert.Nil(t, err)
body := rr.Body.String()
var obj apiResponse
formatJSON(body, &obj)
assert.Equal(t, 200, rr.Code)
}
func httpRequestAPI(t *testing.T, method, url string, body io.Reader) (*httptest.ResponseRecorder, error) {
req, err := http.NewRequest(method, url, body)
if err != nil {

View File

@ -244,7 +244,7 @@ func TestUsersEditHandler(t *testing.T) {
body := rr.Body.String()
assert.Equal(t, 200, rr.Code)
assert.Contains(t, body, "<title>Statup | admin</title>")
assert.Contains(t, body, "<h3>user admin</h3>")
assert.Contains(t, body, "<h3>User admin</h3>")
assert.Contains(t, body, "value=\"info@statup.io\"")
assert.Contains(t, body, "value=\"##########\"")
assert.Contains(t, body, "Statup made with ❤️")
@ -613,6 +613,15 @@ func TestReorderServiceHandler(t *testing.T) {
assert.True(t, isRouteAuthenticated(req))
}
func TestExportHandler(t *testing.T) {
req, err := http.NewRequest("GET", "/settings/export", nil)
assert.Nil(t, err)
rr := httptest.NewRecorder()
Router().ServeHTTP(rr, req)
assert.Equal(t, 200, rr.Code)
assert.True(t, isRouteAuthenticated(req))
}
func TestCreateBulkServices(t *testing.T) {
domains := []string{
"https://status.coinapp.io",

View File

@ -22,45 +22,12 @@ import (
"github.com/hunterlong/statup/core"
"github.com/hunterlong/statup/types"
"github.com/hunterlong/statup/utils"
"github.com/jinzhu/now"
"net"
"net/http"
"strconv"
"time"
)
func renderServiceChartHandler(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
fields := parseGet(r)
w.Header().Set("Content-Type", "text/javascript")
w.Header().Set("Cache-Control", "max-age=30")
startField := fields.Get("start")
endField := fields.Get("end")
end := now.EndOfDay().UTC()
start := now.BeginningOfDay().UTC()
if startField != "" {
start = time.Unix(utils.StringInt(startField), 0)
start = now.New(start).BeginningOfDay().UTC()
}
if endField != "" {
end = time.Unix(utils.StringInt(endField), 0)
end = now.New(end).EndOfDay().UTC()
}
service := core.SelectService(utils.StringInt(vars["id"]))
data := core.GraphDataRaw(service, start, end, "hour", "latency").ToString()
out := struct {
Services []*core.Service
Data []string
}{[]*core.Service{service}, []string{data}}
executeResponse(w, r, "charts.js", out, nil)
}
func renderServiceChartsHandler(w http.ResponseWriter, r *http.Request) {
services := core.CoreApp.Services
w.Header().Set("Content-Type", "text/javascript")

View File

@ -92,6 +92,11 @@ func TestDiscordNotifier(t *testing.T) {
assert.Nil(t, err)
})
t.Run("discord Test", func(t *testing.T) {
err := discorder.OnTest()
assert.Nil(t, err)
})
t.Run("discord Queue", func(t *testing.T) {
go notifier.Queue(discorder)
time.Sleep(1 * time.Second)

View File

@ -128,6 +128,11 @@ func TestEmailNotifier(t *testing.T) {
assert.Nil(t, err)
})
t.Run("emailer Test", func(t *testing.T) {
err := emailer.OnTest()
assert.Nil(t, err)
})
t.Run("email Run Queue", func(t *testing.T) {
go notifier.Queue(emailer)
time.Sleep(5 * time.Second)

View File

@ -101,6 +101,11 @@ func TestSlackNotifier(t *testing.T) {
assert.Len(t, slacker.Queue, 3)
})
t.Run("slack Test", func(t *testing.T) {
err := slacker.OnTest()
assert.Nil(t, err)
})
t.Run("slack Queue", func(t *testing.T) {
go notifier.Queue(slacker)
time.Sleep(4 * time.Second)

View File

@ -99,6 +99,11 @@ func TestTwilioNotifier(t *testing.T) {
assert.Nil(t, err)
})
t.Run("Twilio Test", func(t *testing.T) {
err := twilioNotifier.OnTest()
assert.Nil(t, err)
})
t.Run("Twilio Queue", func(t *testing.T) {
go notifier.Queue(twilioNotifier)
time.Sleep(1 * time.Second)