diff --git a/cmd/cli.go b/cmd/cli.go index df13724f..70459551 100644 --- a/cmd/cli.go +++ b/cmd/cli.go @@ -22,7 +22,7 @@ const ( ) func CatchCLI(args []string) { - dir := utils.Dir() + dir := utils.Directory switch args[1] { case "version": fmt.Printf("Statup v%v\n", VERSION) diff --git a/cmd/main_test.go b/cmd/main_test.go index 4de80984..d6e92207 100644 --- a/cmd/main_test.go +++ b/cmd/main_test.go @@ -21,19 +21,18 @@ import ( var ( route *mux.Router testSession *sessions.Session - gopath string + dir string ) func init() { - gopath := os.Getenv("GOPATH") - gopath += "/src/github.com/hunterlong/statup" + dir = utils.Directory } func RunInit(t *testing.T) { core.RenderBoxes() - os.Remove(gopath + "/statup.db") - os.Remove(gopath + "/cmd/config.yml") - os.Remove(gopath + "/cmd/index.html") + os.Remove(dir + "/statup.db") + os.Remove(dir + "/cmd/config.yml") + os.Remove(dir + "/cmd/index.html") route = handlers.Router() LoadDotEnvs() core.CoreApp = core.NewCore() @@ -186,14 +185,13 @@ func TestExportCommand(t *testing.T) { c.Run() t.Log(c.Stdout()) assert.True(t, c.StdoutContains("Exporting Static 'index.html' page")) - assert.True(t, fileExists(gopath+"/cmd/index.html")) + assert.True(t, fileExists(dir+"/cmd/index.html")) } func TestAssetsCommand(t *testing.T) { c := testcli.Command("statup", "assets") c.Run() t.Log(c.Stdout()) - dir := utils.Dir() assert.True(t, fileExists(dir+"/assets/robots.txt")) assert.True(t, fileExists(dir+"/assets/js/main.js")) assert.True(t, fileExists(dir+"/assets/css/base.css")) @@ -201,7 +199,6 @@ func TestAssetsCommand(t *testing.T) { } func RunMakeDatabaseConfig(t *testing.T, db string) { - dir := utils.Dir() port := 5432 if db == "mysql" { port = 3306 @@ -562,10 +559,10 @@ func RunSettingsHandler(t *testing.T) { } func Cleanup(t *testing.T) { - os.Remove(gopath + "/cmd/statup.db") + os.Remove(dir + "/statup.db") //os.Remove(gopath+"/cmd/config.yml") - os.RemoveAll(gopath + "/cmd/assets") - os.RemoveAll(gopath + "/cmd/logs") + os.RemoveAll(dir + "/assets") + os.RemoveAll(dir + "/logs") } func fileExists(file string) bool { diff --git a/handlers/handlers.go b/handlers/handlers.go index 3061314c..370af2c4 100644 --- a/handlers/handlers.go +++ b/handlers/handlers.go @@ -92,9 +92,6 @@ func ExecuteResponse(w http.ResponseWriter, r *http.Request, file string, data i "underscore": func(html string) string { return utils.UnderScoreString(html) }, - "User": func() *types.User { - return SessionUser(r) - }, }) t, _ = t.Parse(nav) t, _ = t.Parse(footer) diff --git a/handlers/handlers_test.go b/handlers/handlers_test.go index 15dc0478..ce906976 100644 --- a/handlers/handlers_test.go +++ b/handlers/handlers_test.go @@ -308,6 +308,14 @@ func TestViewTCPServicesHandler(t *testing.T) { assert.Contains(t, body, "Statup made with ❤️") } +func TestServicesDeleteFailuresHandler(t *testing.T) { + req, err := http.NewRequest("GET", "/service/7/delete_failures", nil) + assert.Nil(t, err) + rr := httptest.NewRecorder() + Router().ServeHTTP(rr, req) + assert.Equal(t, 303, rr.Code) +} + func TestServicesUpdateHandler(t *testing.T) { form := url.Values{} form.Add("name", "The Bravery - An Honest Mistake") @@ -386,6 +394,27 @@ func TestViewSettingsHandler(t *testing.T) { assert.Contains(t, body, "Statup made with ❤️") } +func TestSaveAssetsHandler(t *testing.T) { + req, err := http.NewRequest("GET", "/settings/build", nil) + assert.Nil(t, err) + rr := httptest.NewRecorder() + Router().ServeHTTP(rr, req) + assert.Equal(t, 303, rr.Code) + assert.FileExists(t, utils.Directory+"/assets/css/base.css") + assert.FileExists(t, utils.Directory+"/assets/js/main.js") + assert.DirExists(t, utils.Directory+"/assets") + assert.True(t, core.UsingAssets) +} + +func TestDeleteAssetsHandler(t *testing.T) { + req, err := http.NewRequest("GET", "/settings/delete_assets", nil) + assert.Nil(t, err) + rr := httptest.NewRecorder() + Router().ServeHTTP(rr, req) + assert.Equal(t, 303, rr.Code) + assert.False(t, core.UsingAssets) +} + func TestPrometheusHandler(t *testing.T) { req, err := http.NewRequest("GET", "/metrics", nil) req.Header.Set("Authorization", core.CoreApp.ApiSecret) @@ -397,6 +426,52 @@ func TestPrometheusHandler(t *testing.T) { assert.Contains(t, body, "statup_total_services 6") } +func TestSaveNotificationHandler(t *testing.T) { + form := url.Values{} + form.Add("enable", "on") + form.Add("host", "smtp.emailer.com") + form.Add("port", "587") + form.Add("username", "exampleuser") + form.Add("password", "password123") + form.Add("var1", "info@betatude.com") + form.Add("var2", "sendto@gmail.com") + form.Add("api_key", "") + form.Add("api_secret", "") + form.Add("limits", "7") + req, err := http.NewRequest("POST", "/settings/notifier/1", strings.NewReader(form.Encode())) + req.Header.Set("Content-Type", "application/x-www-form-urlencoded") + assert.Nil(t, err) + rr := httptest.NewRecorder() + Router().ServeHTTP(rr, req) + assert.Equal(t, 303, rr.Code) +} + +func TestViewNotificationSettingsHandler(t *testing.T) { + req, err := http.NewRequest("GET", "/settings", nil) + assert.Nil(t, err) + rr := httptest.NewRecorder() + Router().ServeHTTP(rr, req) + body := rr.Body.String() + assert.Equal(t, 200, rr.Code) + assert.Contains(t, body, "