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()) } }) } } }