import { flushPromises, mount } from '@vue/test-utils' import { defineComponent, h } from 'vue' import { beforeEach, describe, expect, it, vi } from 'vitest' import WarehouseTransferReviewDialog from './WarehouseTransferReviewDialog.vue' import { getWarehouseTransfer, reviewWarehouseTransfer } from '../api/warehouseTransfers' vi.mock('../api/warehouseTransfers', async importOriginal => ({ ...await importOriginal(), getWarehouseTransfer: vi.fn(), reviewWarehouseTransfer: vi.fn(), })) const AppDialogStub = defineComponent({ name: 'AppDialog', props: { modelValue: Boolean }, emits: ['confirm', 'update:modelValue'], setup(props, { slots }) { return () => props.modelValue ? h('section', { class: 'dialog' }, slots.default?.()) : null }, }) const DataTableStub = defineComponent({ name: 'DataTable', props: { data: { type: Array, default: () => [] } }, setup(props) { return () => h('div', { class: 'data-table' }, JSON.stringify(props.data)) }, }) function detail(transferNo: string) { return { id: `id-${transferNo}`, transferNo, packageCount: 2, needRelabel: false, status: 'PENDING_REVIEW', items: [{ id: 'item-1', skuCode: 'SKU-1', productNameZh: '测试货物', packageCount: 2 }], cartons: [], pallets: [], relabelBindings: [], } } function mountDialog(props: { modelValue: boolean; customerId: string; customerName: string; transferNo: string }) { return mount(WarehouseTransferReviewDialog, { props, global: { stubs: { AppDialog: AppDialogStub, DataTable: DataTableStub, LoadErrorState: true, ApiErrorMeta: true, ElForm: { template: '
' }, ElFormItem: { template: '' }, ElRadioGroup: { template: '
' }, ElRadioButton: { template: '' }, ElInput: { template: '