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