generated from VLADIMIR/template
38 lines
1.1 KiB
Go
38 lines
1.1 KiB
Go
package app
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"evening_detective_server/internal/modules/processor_jwt"
|
|
"evening_detective_server/internal/services/ui_service"
|
|
proto "evening_detective_server/proto"
|
|
)
|
|
|
|
func TestGetPermissionsEnvironment(t *testing.T) {
|
|
for _, mode := range []struct {
|
|
name string
|
|
venue bool
|
|
}{{"prod", false}, {"venue", true}} {
|
|
for _, role := range []string{"", "user", "admin"} {
|
|
t.Run(mode.name+"/"+role, func(t *testing.T) {
|
|
s := &server{uiService: ui_service.NewUIService(mode.venue)}
|
|
ctx := context.Background()
|
|
if role != "" {
|
|
ctx = processor_jwt.ContextWithClaims(ctx, &processor_jwt.JWTClaims{Roles: []string{role}})
|
|
}
|
|
rsp, err := s.GetPermissions(ctx, &proto.GetPermissionsReq{})
|
|
if err != nil {
|
|
t.Fatalf("GetPermissions() error = %v", err)
|
|
}
|
|
if rsp.GetEnvironment() != mode.name {
|
|
t.Fatalf("environment = %q, want %q", rsp.GetEnvironment(), mode.name)
|
|
}
|
|
if (len(rsp.GetPermissions()) == 0) != (role == "") {
|
|
t.Fatalf("unexpected permissions for role %q: %v", role, rsp.GetPermissions())
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}
|