1
0
mirror of https://github.com/PanJiaChen/vue-element-admin.git synced 2026-04-30 11:08:16 +08:00
vue-element-admin/tests/unit/utils/admin-auth.spec.js

39 lines
1.0 KiB
JavaScript

import { buildUserProfileFromToken, parseJwtPayload } from '@/utils/admin-auth'
function createJwt(payload) {
const encode = obj => Buffer.from(JSON.stringify(obj)).toString('base64url')
return `${encode({ alg: 'HS256', typ: 'JWT' })}.${encode(payload)}.signature`
}
describe('admin auth utils', () => {
it('parses jwt payload from backend admin token', () => {
const token = createJwt({
username: 'admin_user',
roleCode: 'SUPER_ADMIN',
roleName: 'Super Admin'
})
expect(parseJwtPayload(token)).toEqual({
username: 'admin_user',
roleCode: 'SUPER_ADMIN',
roleName: 'Super Admin'
})
})
it('builds user profile from backend admin token', () => {
const token = createJwt({
username: 'admin_user',
roleCode: 'SUPER_ADMIN',
roleName: 'Super Admin'
})
expect(buildUserProfileFromToken(token)).toMatchObject({
name: 'admin_user',
introduction: 'Super Admin',
roleCode: 'SUPER_ADMIN',
roleName: 'Super Admin',
roles: ['SUPER_ADMIN']
})
})
})