修复财务页面竞态并整理采购与运输展示
This commit is contained in:
@@ -238,6 +238,27 @@ describe('overseas business mounted pages', () => {
|
||||
})
|
||||
|
||||
it('mounts procurement list with customer candidates and real data', async () => { const wrapper = mountPage(PurchaseOrdersView); await flushPromises(); expect(listOverseasPurchaseCustomerOptions).toHaveBeenCalled(); expect(listOverseasPurchases).toHaveBeenCalledWith({ page: 1, size: 20, customerId: '', orderNo: '', purchaseCategory: '', productName: '', status: '' }); expect(wrapper.text()).toContain('OP-100'); expect(wrapper.text()).toContain('收货中'); expect(wrapper.text()).toContain('2026-08-01 10:00') })
|
||||
it.each([
|
||||
{ status: 'REJECTED' as const, label: '已拒绝' },
|
||||
{ status: 'CANCELLED' as const, label: '已取消' },
|
||||
])('filters procurement orders by $status and resets to all statuses', async ({ status, label }) => {
|
||||
vi.mocked(listOverseasPurchases).mockResolvedValue({ records: [{ ...purchase, status }], page: 1, size: 20, total: 1, pages: 1 })
|
||||
const wrapper = mountPage(PurchaseOrdersView)
|
||||
await flushPromises()
|
||||
const statusSelect = wrapper.findAllComponents({ name: 'ElSelect' }).find(select => select.props('placeholder') === '全部状态')!
|
||||
expect(statusSelect.findAllComponents({ name: 'ElOption' }).map(option => ({ value: option.props('value'), label: option.props('label') }))).toEqual(expect.arrayContaining([
|
||||
{ value: 'REJECTED', label: '已拒绝' }, { value: 'CANCELLED', label: '已取消' },
|
||||
]))
|
||||
statusSelect.vm.$emit('update:modelValue', status)
|
||||
await wrapper.vm.$nextTick()
|
||||
await wrapper.findAll('button').find(button => button.text() === '查询')!.trigger('click')
|
||||
await flushPromises()
|
||||
expect(listOverseasPurchases).toHaveBeenLastCalledWith(expect.objectContaining({ status }))
|
||||
expect(wrapper.find('.el-table__body .el-tag').text()).toBe(label)
|
||||
await wrapper.findAll('button').find(button => button.text() === '重置')!.trigger('click')
|
||||
await flushPromises()
|
||||
expect(listOverseasPurchases).toHaveBeenLastCalledWith(expect.objectContaining({ status: '' }))
|
||||
})
|
||||
it('reviews pending procurement from the list, submits rejection as remark, and omits edit', async () => {
|
||||
vi.mocked(listOverseasPurchases).mockResolvedValue({ records: [{ ...purchase, status: 'PENDING_REVIEW' }], page: 1, size: 20, total: 1, pages: 1 })
|
||||
const wrapper = mountPage(PurchaseOrdersView); await flushPromises()
|
||||
@@ -402,12 +423,15 @@ describe('overseas business mounted pages', () => {
|
||||
})
|
||||
|
||||
it('mounts truck list with enabled create and supported types', async () => { const wrapper = mountPage(TransportOrdersView, { domain: 'truck' }); await flushPromises(); expect(listUsTruckOrders).toHaveBeenCalled(); expect(wrapper.text()).toContain('TK-200'); expect(wrapper.text()).toContain('15拖'); expect(wrapper.text()).toContain('2026-08-01 10:00'); expect(wrapper.findAll('button').find((button) => button.text().includes('新增订单'))?.attributes('disabled')).toBeUndefined() })
|
||||
it('opens the requested truck review from the list using its customer scope', async () => {
|
||||
it('shows a truck detail entry instead of review and edit and keeps its customer scope', async () => {
|
||||
const wrapper = mountPage(TransportOrdersView, { domain: 'truck' }); await flushPromises()
|
||||
const auth = useAuthStore(); auth.permissions.push('platform:overseas-business:truck:status')
|
||||
await wrapper.vm.$nextTick()
|
||||
const review = wrapper.findAll('button').find(button => button.text() === '审核')
|
||||
expect(review).toBeDefined(); await review!.trigger('click'); await flushPromises()
|
||||
const actions = wrapper.findAll('.el-table__body-wrapper button')
|
||||
expect(actions.map(button => button.text())).toContain('详情')
|
||||
expect(actions.map(button => button.text())).not.toContain('审核')
|
||||
expect(actions.map(button => button.text())).not.toContain('编辑')
|
||||
await actions.find(button => button.text() === '详情')!.trigger('click'); await flushPromises()
|
||||
expect(routing.push).toHaveBeenCalledWith({ name: 'overseas-business-truck-detail', params: { orderId: 'TK-200' }, query: { customerId: '10002' } })
|
||||
})
|
||||
it('renders truck load failure without samples', async () => { vi.mocked(listUsTruckOrders).mockRejectedValue(new Error('hidden')); const wrapper = mountPage(TransportOrdersView, { domain: 'truck' }); await flushPromises(); expect(wrapper.text()).toContain('本土卡车订单加载失败'); expect(wrapper.text()).not.toContain('TK-200') })
|
||||
|
||||
Reference in New Issue
Block a user