32 lines
782 B
Go
32 lines
782 B
Go
package service
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/wmms/wmms/internal/model"
|
|
)
|
|
|
|
func TestGeneratedTokenCarriesEveryUserRole(t *testing.T) {
|
|
user := &model.User{
|
|
ID: 7,
|
|
Username: "zhangsan",
|
|
Roles: []model.Role{
|
|
{ID: 2, Code: "warehouse_admin", Name: "仓库管理员", Enabled: true},
|
|
{ID: 3, Code: "purchaser", Name: "采购人员", Enabled: true},
|
|
},
|
|
}
|
|
|
|
service := NewAuthService()
|
|
tokenString, err := service.GenerateToken(user)
|
|
if err != nil {
|
|
t.Fatalf("generate token: %v", err)
|
|
}
|
|
token, err := service.ValidateToken(tokenString)
|
|
if err != nil {
|
|
t.Fatalf("validate token: %v", err)
|
|
}
|
|
if len(token.Roles) != 2 || token.Roles[0] != "warehouse_admin" || token.Roles[1] != "purchaser" {
|
|
t.Fatalf("unexpected token roles: %+v", token.Roles)
|
|
}
|
|
}
|