20260920220520
This commit is contained in:
1 parent
6f03d92425
commit
b3364fe6dc
44 files changed
+2313
-2737
No files matched your search
@@ -0,0 +1,65 @@
|
||||
/**
|
||||
* 分配权限抽屉(UserPowerDrawer):头部结构。
|
||||
*
|
||||
* 数据加载与保存由本组件负责(面板只读展示),测试只锁头部两件事:
|
||||
* 1. 头部不渲染标题:只有页签一行 + ui/Drawer 的关闭按钮,没有其它元素;
|
||||
* 2. 三个页签对应三张权限表的内容面板(切换页签不销毁,用 v-show 承载)。
|
||||
*
|
||||
* 面板自身的规则由 user-power-panel.spec.js 覆盖(含「全授权 / 全禁用」),这里不重复。
|
||||
*/
|
||||
import { describe, it, expect, beforeEach, vi } from 'vitest'
|
||||
import { mount, flushPromises } from '@vue/test-utils'
|
||||
import UserPowerDrawer from '@/views/system/user/UserPowerDrawer.vue'
|
||||
import { clearMessages } from '@/stores/i18n'
|
||||
|
||||
vi.mock('@/services/api', () => ({
|
||||
loadDataApi: vi.fn(),
|
||||
saveObjectApi: vi.fn(() => Promise.resolve({ code: 0, success: true })),
|
||||
}))
|
||||
|
||||
import { loadDataApi } from '@/services/api'
|
||||
|
||||
beforeEach(() => {
|
||||
localStorage.clear()
|
||||
sessionStorage.clear()
|
||||
clearMessages()
|
||||
loadDataApi.mockReset()
|
||||
loadDataApi.mockImplementation(() => Promise.resolve({ data: [] }))
|
||||
})
|
||||
|
||||
async function mountDrawer() {
|
||||
const wrapper = mount(UserPowerDrawer, {
|
||||
props: { open: true, user: { b_id: '001', b_name: '张三' } },
|
||||
// Drawer 用 Teleport 到 body;打桩后内容留在原地,选择器才能命中
|
||||
global: { stubs: { teleport: true } },
|
||||
})
|
||||
await flushPromises()
|
||||
return wrapper
|
||||
}
|
||||
|
||||
describe('分配权限抽屉:头部', () => {
|
||||
it('头部只有页签一行:无标题、无批量按钮,关闭按钮由 ui/Drawer 提供', async () => {
|
||||
const wrapper = await mountDrawer()
|
||||
|
||||
expect(wrapper.find('.fms-drawer-title').exists()).toBe(false)
|
||||
expect(wrapper.find('.fms-drawer-extra .tabs-nav').exists()).toBe(true)
|
||||
expect(wrapper.find('.fms-drawer-close').exists()).toBe(true)
|
||||
// 账号级批量按钮不在头部(在功能权限面板的工具栏里)
|
||||
expect(wrapper.find('.fms-drawer-header button.button').exists()).toBe(false)
|
||||
})
|
||||
|
||||
it('三个页签对应三张权限表的内容面板', async () => {
|
||||
const wrapper = await mountDrawer()
|
||||
|
||||
expect(wrapper.findAll('.tabs-tab').map((el) => el.text())).toEqual([
|
||||
'功能权限',
|
||||
'字段权限',
|
||||
'数据范围',
|
||||
])
|
||||
expect(wrapper.findAll('.power-pane').map((el) => el.attributes('data-pane'))).toEqual([
|
||||
'power',
|
||||
'field',
|
||||
'data',
|
||||
])
|
||||
})
|
||||
})
|
||||
Reference in new issue
Block a user