47 lines
986 B
Go
47 lines
986 B
Go
package admin_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
webtest "github.com/thomiceli/opengist/internal/web/test"
|
|
)
|
|
|
|
func TestAdminActions(t *testing.T) {
|
|
s := webtest.Setup(t)
|
|
defer webtest.Teardown(t)
|
|
urls := []string{
|
|
"/admin-panel/sync-fs",
|
|
"/admin-panel/sync-db",
|
|
"/admin-panel/gc-repos",
|
|
"/admin-panel/sync-previews",
|
|
"/admin-panel/reset-hooks",
|
|
"/admin-panel/index-gists",
|
|
"/admin-panel/sync-languages",
|
|
}
|
|
|
|
s.Register(t, "thomas")
|
|
s.Register(t, "nonadmin")
|
|
|
|
t.Run("NoUser", func(t *testing.T) {
|
|
for _, url := range urls {
|
|
s.Request(t, "POST", url, nil, 404)
|
|
}
|
|
})
|
|
|
|
t.Run("AdminUser", func(t *testing.T) {
|
|
s.Login(t, "thomas")
|
|
for _, url := range urls {
|
|
resp := s.Request(t, "POST", url, nil, 302)
|
|
require.Equal(t, "/admin-panel", resp.Header.Get("Location"))
|
|
}
|
|
})
|
|
|
|
t.Run("NonAdminUser", func(t *testing.T) {
|
|
s.Login(t, "nonadmin")
|
|
for _, url := range urls {
|
|
s.Request(t, "POST", url, nil, 404)
|
|
}
|
|
})
|
|
}
|