mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-11-02 16:52:25 -06:00 
			
		
		
		
	* 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)
 | 
						|
			}
 | 
						|
		})
 | 
						|
	}
 | 
						|
}
 |