46 lines
1.6 KiB
JavaScript
46 lines
1.6 KiB
JavaScript
import { flushPromises, mount } from '@vue/test-utils'
|
||
import ElementPlus from 'element-plus'
|
||
import { describe, expect, test, vi } from 'vitest'
|
||
import Logs from './Logs.vue'
|
||
|
||
vi.mock('../stores/logs', () => ({
|
||
useLogsStore: () => ({
|
||
logs: [], loading: false,
|
||
page: { currentPage: 1, pageSize: 20, total: 0 },
|
||
fetchLogs: vi.fn()
|
||
})
|
||
}))
|
||
vi.mock('../stores/materials', () => ({
|
||
useMaterialsStore: () => ({
|
||
historicalMaterialOptions: [],
|
||
fetchHistoricalMaterialOptions: vi.fn()
|
||
})
|
||
}))
|
||
|
||
describe('导入日志详情', () => {
|
||
test('显示导入时的字段详情并保留换行', async () => {
|
||
const description = '批量导入创建:螺栓(RTIMP0001)\n物料编码:RTIMP0001\n名称:螺栓\n规格:M8\n分类:机械结构类 / 标准件\n单位:个\n状态:启用'
|
||
const wrapper = mount(Logs, {
|
||
global: {
|
||
plugins: [ElementPlus],
|
||
stubs: { teleport: true, ElSelect: true, ElOption: true, ElDatePicker: true }
|
||
}
|
||
})
|
||
try {
|
||
wrapper.vm.$.setupState.showDetail({
|
||
material_id: 31, operation_type: 'CREATE', operator: 'tester',
|
||
created_at: '2026-10-12T10:00:00', description,
|
||
old_value: '', new_value: '{"name":"螺栓","material_code":"RTIMP0001"}'
|
||
})
|
||
await flushPromises()
|
||
|
||
const detail = wrapper.get('.log-description')
|
||
expect(detail.text()).toBe(description)
|
||
expect(detail.element.style.whiteSpace).toBe('pre-wrap')
|
||
expect(wrapper.find('.value-compare').text()).toContain('"material_code": "RTIMP0001"')
|
||
} finally {
|
||
wrapper.unmount()
|
||
}
|
||
})
|
||
})
|