mirror of
https://github.com/airlabspl/uptimemonitor.git
synced 2025-08-14 12:19:19 +02:00
63 lines
1.3 KiB
Go
63 lines
1.3 KiB
Go
package test
|
|
|
|
import (
|
|
"net/http"
|
|
"testing"
|
|
"uptimemonitor"
|
|
)
|
|
|
|
func TestHome(t *testing.T) {
|
|
t.Run("setup is required to access home page", func(t *testing.T) {
|
|
tc := NewTestCase(t)
|
|
defer tc.Close()
|
|
|
|
tc.Get("/").AssertRedirect(http.StatusSeeOther, "/setup")
|
|
})
|
|
|
|
t.Run("guests cannot access home page", func(t *testing.T) {
|
|
tc := NewTestCase(t)
|
|
defer tc.Close()
|
|
|
|
tc.CreateTestUser("test@example.com", "password")
|
|
|
|
tc.Get("/").AssertRedirect(http.StatusSeeOther, "/login")
|
|
})
|
|
|
|
t.Run("monitors are displayed on home page", func(t *testing.T) {
|
|
tc := NewTestCase(t)
|
|
defer tc.Close()
|
|
|
|
tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{
|
|
Url: "https://example.com",
|
|
})
|
|
|
|
tc.LogIn().
|
|
Get("/").
|
|
AssertStatusCode(http.StatusOK).
|
|
AssertElementVisible(`[hx-get="/monitors"]`)
|
|
})
|
|
|
|
t.Run("incidents are displayed on home page", func(t *testing.T) {
|
|
tc := NewTestCase(t)
|
|
defer tc.Close()
|
|
|
|
tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{
|
|
Url: "https://example.com",
|
|
})
|
|
|
|
tc.LogIn().
|
|
Get("/").
|
|
AssertStatusCode(http.StatusOK).
|
|
AssertElementVisible(`[hx-get="/incidents"]`)
|
|
})
|
|
|
|
t.Run("if there are no monitors, user is redirected to the new page", func(t *testing.T) {
|
|
tc := NewTestCase(t)
|
|
defer tc.Close()
|
|
|
|
tc.LogIn().
|
|
Get("/").
|
|
AssertRedirect(http.StatusSeeOther, "/new")
|
|
})
|
|
}
|