This commit is contained in:
2026-08-12 14:08:33 +08:00
parent 4fb8b85c13
commit 975e0057e3
20 changed files with 378 additions and 29 deletions
@@ -7,6 +7,7 @@ import { useAuthStore } from '@/core/auth/auth'
import { useAccessPreviewStore } from '@/core/access/accessPreview'
import {
downloadInboundMeasurementImage,
createManualCartonScan,
getInboundMeasurement,
submitInboundMeasurement,
updateConfirmedPackageCount,
@@ -15,6 +16,7 @@ import type { InboundMeasurementDetail } from './types'
import InboundMeasurementPanel from './InboundMeasurementPanel.vue'
vi.mock('./api', () => ({
createManualCartonScan: vi.fn(),
downloadInboundMeasurementImage: vi.fn(),
getInboundMeasurement: vi.fn(),
saveInboundMeasurementDraft: vi.fn(),
@@ -133,6 +135,10 @@ describe('InboundMeasurementPanel', () => {
measurementId: '9001', version: 2, processStatus: 'MEASURE_PENDING', measureReviewStatus: 'PENDING',
recommendedPalletType: 'STANDARD', feeId: null, feeNo: null, feeStatus: null,
})
vi.mocked(createManualCartonScan).mockReset().mockResolvedValue({
measurementId: '9001', measurementVersion: 3, itemId: '9102', boxCode: 'RK202608040001#10-2',
confirmedPackageCount: 1,
})
vi.spyOn(ElMessageBox, 'confirm').mockResolvedValue(undefined as never)
})
@@ -151,6 +157,19 @@ describe('InboundMeasurementPanel', () => {
expect(wrapper.text()).toContain('预览图片')
})
it('opens the manual carton entry form in an editable measurement state', async () => {
const wrapper = await mountPanel()
const button = wrapper.findAll('button').find((candidate) => candidate.text().includes('手动录入箱规'))
expect(button?.attributes('disabled')).toBeUndefined()
await button?.trigger('click')
expect(wrapper.text()).toContain('手动录入箱规')
expect(document.body.textContent).toContain('箱号')
expect(document.body.textContent).toContain('测量长(cm)')
expect(document.body.textContent).toContain('测量图片')
expect(document.body.textContent).toContain('保存箱规')
})
it('does not expose unknown measurement source codes', async () => {
vi.mocked(getInboundMeasurement).mockResolvedValueOnce(measurement({ sourceType: 'LEGACY_DEVICE' }))