mirror of
https://codeberg.org/superseriousbusiness/gotosocial.git
synced 2024-12-30 21:08:18 +03:00
9bf448be7a
* Add support for very basic RBAC * Add some small tests for allowedGroup and adminGroup * Switch to table-driven tests
45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
package auth
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/superseriousbusiness/gotosocial/testrig"
|
|
)
|
|
|
|
func TestAdminGroup(t *testing.T) {
|
|
testrig.InitTestConfig()
|
|
for _, test := range []struct {
|
|
name string
|
|
groups []string
|
|
expected bool
|
|
}{
|
|
{name: "not in admin group", groups: []string{"group1", "group2", "allowedRole"}, expected: false},
|
|
{name: "in admin group", groups: []string{"group1", "group2", "adminRole"}, expected: true},
|
|
} {
|
|
test := test // loopvar capture
|
|
t.Run(test.name, func(t *testing.T) {
|
|
if got := adminGroup(test.groups); got != test.expected {
|
|
t.Fatalf("got: %t, wanted: %t", got, test.expected)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestAllowedGroup(t *testing.T) {
|
|
testrig.InitTestConfig()
|
|
for _, test := range []struct {
|
|
name string
|
|
groups []string
|
|
expected bool
|
|
}{
|
|
{name: "not in allowed group", groups: []string{"group1", "group2", "adminRole"}, expected: false},
|
|
{name: "in allowed group", groups: []string{"group1", "group2", "allowedRole"}, expected: true},
|
|
} {
|
|
test := test // loopvar capture
|
|
t.Run(test.name, func(t *testing.T) {
|
|
if got := allowedGroup(test.groups); got != test.expected {
|
|
t.Fatalf("got: %t, wanted: %t", got, test.expected)
|
|
}
|
|
})
|
|
}
|
|
}
|