roles
This commit is contained in:
parent
8c8cbfd7dd
commit
41d48bf60a
28 changed files with 434 additions and 7 deletions
92
auth/authmiddleware/must_test.go
Normal file
92
auth/authmiddleware/must_test.go
Normal file
|
@ -0,0 +1,92 @@
|
|||
package authmiddleware_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"git.sapphic.engineer/roleypoly/v4/authmiddleware"
|
||||
"git.sapphic.engineer/roleypoly/v4/discord/clientmock"
|
||||
"git.sapphic.engineer/roleypoly/v4/types"
|
||||
"git.sapphic.engineer/roleypoly/v4/types/fixtures"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestMustAnonymous(t *testing.T) {
|
||||
dc := clientmock.NewDiscordClientMock()
|
||||
app := getApp(dc)
|
||||
|
||||
cookie, err := setSession(app, dc, authmiddleware.Session{
|
||||
Permissions: authmiddleware.PermAnonymous,
|
||||
}, nil)
|
||||
assert.Nil(t, err)
|
||||
|
||||
err = get(t, app, cookie, "/must/user")
|
||||
assert.ErrorIs(t, err, errUnauthorized)
|
||||
err = get(t, app, cookie, "/must/support")
|
||||
assert.ErrorIs(t, err, errUnauthorized)
|
||||
err = get(t, app, cookie, "/must/superuser")
|
||||
assert.ErrorIs(t, err, errUnauthorized)
|
||||
}
|
||||
|
||||
func TestMustUser(t *testing.T) {
|
||||
dc := clientmock.NewDiscordClientMock()
|
||||
app := getApp(dc)
|
||||
|
||||
user := fixtures.User
|
||||
mockUser(dc, &user)
|
||||
cookie, err := setSession(app, dc, authmiddleware.Session{
|
||||
User: &user,
|
||||
AccessToken: "access-token",
|
||||
}, nil)
|
||||
assert.Nil(t, err)
|
||||
|
||||
err = get(t, app, cookie, "/must/user")
|
||||
assert.Nil(t, err)
|
||||
err = get(t, app, cookie, "/must/support")
|
||||
assert.ErrorIs(t, err, errUnauthorized)
|
||||
err = get(t, app, cookie, "/must/superuser")
|
||||
assert.ErrorIs(t, err, errUnauthorized)
|
||||
}
|
||||
|
||||
func TestMustSupport(t *testing.T) {
|
||||
dc := clientmock.NewDiscordClientMock()
|
||||
app := getApp(dc)
|
||||
|
||||
user := &types.DiscordUser{
|
||||
ID: "support-user",
|
||||
}
|
||||
mockUser(dc, user)
|
||||
cookie, err := setSession(app, dc, authmiddleware.Session{
|
||||
User: user,
|
||||
AccessToken: "access-token",
|
||||
}, nil)
|
||||
assert.Nil(t, err)
|
||||
|
||||
err = get(t, app, cookie, "/must/user")
|
||||
assert.Nil(t, err)
|
||||
err = get(t, app, cookie, "/must/support")
|
||||
assert.Nil(t, err)
|
||||
err = get(t, app, cookie, "/must/superuser")
|
||||
assert.ErrorIs(t, err, errUnauthorized)
|
||||
}
|
||||
|
||||
func TestMustSupuruser(t *testing.T) {
|
||||
dc := clientmock.NewDiscordClientMock()
|
||||
app := getApp(dc)
|
||||
|
||||
user := &types.DiscordUser{
|
||||
ID: "superuser-user",
|
||||
}
|
||||
mockUser(dc, user)
|
||||
cookie, err := setSession(app, dc, authmiddleware.Session{
|
||||
User: user,
|
||||
AccessToken: "access-token",
|
||||
}, nil)
|
||||
assert.Nil(t, err)
|
||||
|
||||
err = get(t, app, cookie, "/must/user")
|
||||
assert.Nil(t, err)
|
||||
err = get(t, app, cookie, "/must/support")
|
||||
assert.Nil(t, err)
|
||||
err = get(t, app, cookie, "/must/superuser")
|
||||
assert.Nil(t, err)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue