You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

39 lines
958 B

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