优化
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import assert from 'node:assert/strict'
|
||||
import test from 'node:test'
|
||||
import { verifyDownloadCenterExport } from './download-center.mjs'
|
||||
import { exportWorkbook } from './download-center-fixture.mjs'
|
||||
|
||||
function fixture(status = 'SUCCEEDED', values = ['LM-1']) {
|
||||
const calls = []
|
||||
return {
|
||||
marker: 'export-test', calls,
|
||||
async request(method, path, body) {
|
||||
calls.push({ method, path, body })
|
||||
return { http: 200, body: { code: '200', data: { id: 'EXP-1', status: method === 'POST' ? 'PENDING' : status } } }
|
||||
},
|
||||
apiSuccess(_module, _name, response) { return response.body.data },
|
||||
assert(_module, name, _response, passed) { assert.ok(passed, name) },
|
||||
async requestBinary(method, path) {
|
||||
calls.push({ method, path })
|
||||
return { http: 200, contentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', bytes: exportWorkbook(['尾程单号'], values) }
|
||||
},
|
||||
}
|
||||
}
|
||||
test('creates, polls and validates the actual XLSX through File', async () => {
|
||||
const context = fixture()
|
||||
await verifyDownloadCenterExport(context, 'orders', 'LAST_MILE_ORDER_LIST', { orderNo: 'LM-1' }, ['尾程单号'], ['LM-1'])
|
||||
assert.deepEqual(context.calls[0].body.parameters, { orderNo: 'LM-1' })
|
||||
assert.equal(context.calls[0].body.format, 'XLSX')
|
||||
assert.ok(context.calls.at(-1).path.endsWith('/EXP-1/download'))
|
||||
})
|
||||
test('failed generation cannot be reported as a successful download', async () => {
|
||||
const context = fixture('FAILED')
|
||||
await assert.rejects(verifyDownloadCenterExport(context, 'orders', 'LAST_MILE_ORDER_LIST', {}, ['尾程单号']))
|
||||
assert.equal(context.calls.some(call => call.path.endsWith('/download')), false)
|
||||
})
|
||||
test('a file missing this run business data fails acceptance', async () => {
|
||||
await assert.rejects(verifyDownloadCenterExport(fixture('SUCCEEDED', ['OTHER']), 'orders', 'LAST_MILE_ORDER_LIST', {}, ['尾程单号'], ['LM-1']))
|
||||
})
|
||||
Reference in New Issue
Block a user