1
This commit is contained in:
@@ -173,6 +173,43 @@ describe('UnifiedOrdersView list request coordination', () => {
|
||||
expect(wrapper.findAll('[role="tab"]')[3]!.text()).toBe('测量数据审核(3)')
|
||||
})
|
||||
|
||||
it('keeps every count and the toolbar state stable when switching between ordinary and review tabs', async () => {
|
||||
vi.mocked(getPlatformUnifiedOrderStatusCounts).mockResolvedValueOnce({ counts: { PENDING_REVIEW: 12, WAIT_MEASURE: 0, MEASUREMENT_REVIEW: 4, SIGNED: 3 } })
|
||||
const wrapper = mountView()
|
||||
await flushPromises()
|
||||
const labels = wrapper.findAll('[role="tab"]').map(tab => tab.text())
|
||||
vi.mocked(getPlatformUnifiedOrderStatusCounts).mockImplementation(() => new Promise(() => {}))
|
||||
for (const label of ['待审核(12)', '测量数据审核(4)', '待测量数据(0)', '全部']) {
|
||||
await wrapper.findAll('[role="tab"]').find(tab => tab.text() === label)!.trigger('click')
|
||||
await flushPromises()
|
||||
expect(wrapper.findAll('[role="tab"]').map(tab => tab.text())).toEqual(labels)
|
||||
expect(wrapper.get('[aria-selected="true"]').text()).toBe(label)
|
||||
expect(wrapper.get('[role="tablist"]').attributes('aria-busy')).toBe('false')
|
||||
expect(wrapper.find('.order-status-feedback').exists()).toBe(false)
|
||||
expect(getPlatformUnifiedOrderStatusCounts).toHaveBeenCalledTimes(1)
|
||||
}
|
||||
})
|
||||
|
||||
it.each(['success', 'failure'] as const)('ignores an older tab request %s after the current tab has loaded', async (outcome) => {
|
||||
const wrapper = mountView()
|
||||
await flushPromises()
|
||||
let resolveOlder!: (value: Awaited<ReturnType<typeof listPlatformUnifiedOrders>>) => void
|
||||
let rejectOlder!: (reason: Error) => void
|
||||
vi.mocked(listPlatformUnifiedOrders).mockImplementationOnce(() => new Promise((resolve, reject) => { resolveOlder = resolve; rejectOlder = reject }))
|
||||
await wrapper.findAll('[role="tab"]').find(tab => tab.text() === '待审核')!.trigger('click')
|
||||
const latest = { ...emptyPage(), records: [{ orderId: 'new-order', tenantId: '8', orderVersion: 1, inboundCode: 'IN-NEW', internalOrderStatus: 'SUBMITTED', mainStatus: 'WAIT_MEASURE', expectedArrivalAt: null, estimatedVolumeCbm: null }], total: 1, pages: 1 } as Awaited<ReturnType<typeof listPlatformUnifiedOrders>>
|
||||
vi.mocked(listPlatformUnifiedOrders).mockResolvedValueOnce(latest)
|
||||
await wrapper.findAll('[role="tab"]').find(tab => tab.text() === '待测量数据')!.trigger('click')
|
||||
await flushPromises()
|
||||
expect(wrapper.getComponent({ name: 'DataTable' }).props('data')).toEqual(latest.records)
|
||||
if (outcome === 'success') resolveOlder(emptyPage())
|
||||
else rejectOlder(new Error('旧页签请求失败'))
|
||||
await flushPromises()
|
||||
expect(wrapper.get('[aria-selected="true"]').text()).toBe('待测量数据')
|
||||
expect(wrapper.getComponent({ name: 'DataTable' }).props('data')).toEqual(latest.records)
|
||||
expect(wrapper.findComponent({ name: 'LoadErrorState' }).exists()).toBe(false)
|
||||
})
|
||||
|
||||
it('loads once initially and once for query, reset, status tab and pagination', async () => {
|
||||
const wrapper = mountView()
|
||||
await flushPromises()
|
||||
|
||||
Reference in New Issue
Block a user