test: prepare measurement review fixtures without approval

This commit is contained in:
2026-10-23 02:13:47 +08:00
parent 6cd27658f7
commit 7e1703bde9
5 changed files with 42 additions and 1 deletions
@@ -1,6 +1,7 @@
import assert from 'node:assert/strict'
import { readFileSync } from 'node:fs'
import test from 'node:test'
import { parseArguments, validateExecutionOptions } from '../admin-test-env-acceptance.mjs'
import { completeDropshipPalletization, verifyMeasurementSubmitReplay,
verifyMeasurementApprovalReplay } from './inbound-measurement.mjs'
@@ -11,6 +12,18 @@ const measurementTests = read('../../firstleg/src/test/java/com/baiyue/firstleg/
const cartonTests = read('../../firstleg/src/test/java/com/baiyue/firstleg/service/CartonMeasurementServiceTest.java')
const reviewTests = read('../../firstleg/src/test/java/com/baiyue/firstleg/service/MeasurementReviewServiceTest.java')
test('measurement review preparation is explicit and cannot continue downstream or bulk flows', () => {
const args = ['--environment', 'test', '--gateway', 'https://test.invalid', '--username', 'fixture', '--password', 'fixture-only', '--modules', 'inbound-measurement', '--prepare-measurement-review', 'true']
const options = parseArguments(args)
assert.equal(options.prepareMeasurementReview, true)
assert.doesNotThrow(() => validateExecutionOptions(options))
assert.throws(() => parseArguments([...args.slice(0, -1), 'false']), /必须明确/)
for (const change of [{ waitSplitCount: 2 }, { prepareDropshipManualCount: true }, { requestedModules: ['inbound-measurement', 'phase3-customs'] }]) {
assert.throws(() => validateExecutionOptions({ ...options, ...change }), /待审准备/)
}
assert.equal(parseArguments(args.slice(0, -2)).prepareMeasurementReview, false)
})
test('measurement acceptance scans the stable box code frozen by first print', () => {
assert.match(source, /const boxCode = `\$\{inboundCode\}#\$\{originalPackageCount\}-1`/)
assert.doesNotMatch(source, /#V\d+#/)