update profile page
This commit is contained in:
@@ -5,6 +5,7 @@ import { nextTick } from 'vue'
|
||||
import { message } from 'ant-design-vue'
|
||||
import { ApiError } from '@/types/api'
|
||||
import { useUserStore } from '@/stores/user'
|
||||
import { fakeJwtWithRole } from '@/test/helpers'
|
||||
|
||||
Object.defineProperty(window, 'matchMedia', {
|
||||
writable: true,
|
||||
@@ -58,7 +59,7 @@ describe('Profile Page', () => {
|
||||
vi.mocked(api.get).mockResolvedValue(mockUser)
|
||||
|
||||
const store = useUserStore()
|
||||
store.setToken('h.p.s', 'r.p.s', true)
|
||||
store.setToken(fakeJwtWithRole('administrator'), 'r.p.s', true)
|
||||
store.setUser({ ...mockUser })
|
||||
|
||||
const { default: ProfilePage } = await import('../index.vue')
|
||||
|
||||
@@ -5,6 +5,7 @@ import { nextTick } from 'vue'
|
||||
import { message } from 'ant-design-vue'
|
||||
import { useUserManageStore, type UserRecord } from '@/stores/user-manage'
|
||||
import { useUserStore } from '@/stores/user'
|
||||
import { fakeJwtWithRole } from '@/test/helpers'
|
||||
|
||||
// jsdom 不支持 matchMedia,Ant Design Vue 响应式布局需要
|
||||
Object.defineProperty(window, 'matchMedia', {
|
||||
@@ -202,8 +203,9 @@ describe('Users Page', () => {
|
||||
return Promise.resolve(mockPaginatedResponse) as never
|
||||
})
|
||||
|
||||
// 设置 admin 用户以显示操作按钮
|
||||
// 设置 admin 用户以显示操作按钮(isAdmin 从 JWT 派生)
|
||||
const userStore = useUserStore()
|
||||
userStore.setToken(fakeJwtWithRole('administrator'), 'rt')
|
||||
userStore.setUser({ id: 1, username: 'admin', email: 'a@a.com', role: 'administrator', status: 1 })
|
||||
|
||||
const { default: UsersPage } = await import('../index.vue')
|
||||
@@ -265,8 +267,9 @@ describe('Users Page', () => {
|
||||
const { api } = await import('@/utils/request')
|
||||
vi.mocked(api.get).mockResolvedValue(mockPaginatedResponse)
|
||||
|
||||
// 设置非 admin 用户
|
||||
// 设置非 admin 用户(JWT 中 role 为 accessor)
|
||||
const userStore = useUserStore()
|
||||
userStore.setToken(fakeJwtWithRole('accessor'), 'rt')
|
||||
userStore.setUser({ id: 2, username: 'viewer', email: 'v@v.com', role: 'accessor', status: 1 })
|
||||
|
||||
const { default: UsersPage } = await import('../index.vue')
|
||||
|
||||
Reference in New Issue
Block a user