Files
upstream-traggo/auth/hasrole_test.go
upstream-mirror cda7c1a474
Some checks failed
build / build (push) Failing after 3s
snapshot of https://github.com/traggo/server.git (master, 2026-09-16; blobs > 131072B omitted)
2026-09-16 05:24:45 +05:00

56 lines
1.6 KiB
Go

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
}