package jwt import ( "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestGenerateToken_ContainsRole(t *testing.T) { token, err := GenerateToken(1, "testuser", "admin", 0) require.NoError(t, err) require.NotEmpty(t, token) // 解析 token 验证 role claims, err := ParseToken(token) require.NoError(t, err) assert.Equal(t, int64(1), claims.UserID) assert.Equal(t, "testuser", claims.Username) assert.Equal(t, "admin", claims.Role) } func TestGenerateToken_SuperAdminRole(t *testing.T) { token, err := GenerateToken(99, "admin", "super_admin", 0) require.NoError(t, err) claims, err := ParseToken(token) require.NoError(t, err) assert.Equal(t, "super_admin", claims.Role) } func TestGenerateToken_EmptyRole(t *testing.T) { token, err := GenerateToken(1, "user", "", 0) require.NoError(t, err) claims, err := ParseToken(token) require.NoError(t, err) assert.Equal(t, "", claims.Role) }