snapshot of https://github.com/traggo/server.git (master, 2026-09-16; blobs > 131072B omitted)
Some checks failed
build / build (push) Failing after 3s
Some checks failed
build / build (push) Failing after 3s
This commit is contained in:
55
auth/hasrole_test.go
Normal file
55
auth/hasrole_test.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package auth_test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/traggo/server/auth"
|
||||
"github.com/traggo/server/generated/gqlmodel"
|
||||
"github.com/traggo/server/test/fake"
|
||||
)
|
||||
|
||||
var (
|
||||
successResp = struct{}{}
|
||||
)
|
||||
|
||||
func TestHasRole_requiredUser_givenAdmin_succeeds(t *testing.T) {
|
||||
res, err := auth.HasRole()(fake.UserWithPerm(1, true), nil, noop, gqlmodel.RoleUser)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, successResp, res)
|
||||
}
|
||||
|
||||
func TestHasRole_requiredAdmin_givenAdmin_succeeds(t *testing.T) {
|
||||
res, err := auth.HasRole()(fake.UserWithPerm(1, true), nil, noop, gqlmodel.RoleAdmin)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, successResp, res)
|
||||
}
|
||||
|
||||
func TestHasRole_requiredUser_givenUser_succeeds(t *testing.T) {
|
||||
res, err := auth.HasRole()(fake.UserWithPerm(1, false), nil, noop, gqlmodel.RoleUser)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, successResp, res)
|
||||
}
|
||||
|
||||
func TestHasRole_requiredAdmin_givenUser_fails(t *testing.T) {
|
||||
res, err := auth.HasRole()(fake.UserWithPerm(1, false), nil, noop, gqlmodel.RoleAdmin)
|
||||
assert.Nil(t, res)
|
||||
assert.EqualError(t, err, "permission denied")
|
||||
}
|
||||
|
||||
func TestHasRole_requiredAdmin_noUserGiven_fails(t *testing.T) {
|
||||
res, err := auth.HasRole()(context.Background(), nil, noop, gqlmodel.RoleAdmin)
|
||||
assert.Nil(t, res)
|
||||
assert.EqualError(t, err, "you need to login")
|
||||
}
|
||||
|
||||
func TestHasRole_requiredUser_noUserGiven_fails(t *testing.T) {
|
||||
res, err := auth.HasRole()(context.Background(), nil, noop, gqlmodel.RoleUser)
|
||||
assert.Nil(t, res)
|
||||
assert.EqualError(t, err, "you need to login")
|
||||
}
|
||||
|
||||
func noop(context.Context) (res interface{}, err error) {
|
||||
return successResp, nil
|
||||
}
|
||||
Reference in New Issue
Block a user