优化
This commit is contained in:
@@ -5,6 +5,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { useAuthStore } from '@/core/auth/auth'
|
||||
import { useAccessPreviewStore } from '@/core/access/accessPreview'
|
||||
import RowActions from '@/shared/components/RowActions.vue'
|
||||
import QueryToolbar from '@/shared/components/QueryToolbar.vue'
|
||||
import type { DataTableColumn } from '@/shared/components/DataTable.vue'
|
||||
import { listLocalLooseboardOrders, listUsTruckOrders } from '../api/platformOverseasBusiness'
|
||||
import { overseasBusinessPermissions as permissions } from '../permissions'
|
||||
@@ -31,7 +32,7 @@ function mountList(domain: 'truck' | 'looseboard', edit = false) {
|
||||
auth.permissions = [permissions.truckList, permissions.looseboardList, ...(edit ? [permissions.looseboardEdit] : [])]
|
||||
useAccessPreviewStore().initializeAfterLogin()
|
||||
return mount(TransportOrdersView, { props: { domain }, global: { plugins: [pinia, ElementPlus], stubs: {
|
||||
DataTable: { name: 'DataTable', props: ['data', 'columns'], template: '<div><div v-for="row in data" :key="row.id"><span v-for="column in columns" :key="column.key" :data-column="column.key">{{ column.prop ? row[column.prop] : \'\' }}</span><slot name="actions" :row="row" /></div></div>' },
|
||||
DataTable: { name: 'DataTable', props: ['data', 'columns'], template: '<div><slot name="filters" /><div v-for="row in data" :key="row.id"><span v-for="column in columns" :key="column.key" :data-column="column.key">{{ column.prop ? row[column.prop] : \'\' }}</span><slot name="actions" :row="row" /></div></div>' },
|
||||
AppDialog: true,
|
||||
} } })
|
||||
}
|
||||
@@ -44,6 +45,15 @@ beforeEach(() => {
|
||||
})
|
||||
|
||||
describe('transport document entry', () => {
|
||||
it.each(['truck', 'looseboard'] as const)('limits retired status filters only in truck mode (%s)', async domain => {
|
||||
const wrapper = mountList(domain); await flushPromises()
|
||||
const status = wrapper.findComponent(QueryToolbar).props('fields').find(field => field.key === 'status')!
|
||||
const values = status.options!.map(option => option.value)
|
||||
expect(values.includes('WAITING_CONSOLIDATION')).toBe(domain === 'looseboard')
|
||||
if (domain === 'truck') for (const value of ['WAITING_INBOUND', 'RECEIVING', 'PALLET_OVERAGE_REVIEW', 'PARTIALLY_ALLOCATED', 'ALLOCATED', 'PENDING_DISPATCH']) expect(values).not.toContain(value)
|
||||
else expect(values).toContain('WAITING_INBOUND')
|
||||
expect(status.options!.find(option => option.value === 'IN_TRANSIT')?.label).toBe('派送中')
|
||||
})
|
||||
it('lets list-only users open looseboard details without edit permission', async () => {
|
||||
const wrapper = mountList('looseboard'); await flushPromises()
|
||||
const actions = wrapper.findComponent(RowActions)
|
||||
|
||||
Reference in New Issue
Block a user