fix(client): request complete server-paged order workbench
This commit is contained in:
@@ -2,7 +2,7 @@ import test from 'node:test'
|
||||
import assert from 'node:assert/strict'
|
||||
import { readFileSync } from 'node:fs'
|
||||
import ts from 'typescript'
|
||||
import { computed, ref } from 'vue'
|
||||
import { ref } from 'vue'
|
||||
|
||||
const source = readFileSync(new URL('./customsEligibility.ts', import.meta.url), 'utf8')
|
||||
const exports = {}
|
||||
@@ -17,17 +17,16 @@ test('upload queue contains only customer uploads still required, while complete
|
||||
for (const status of ['LOADED', 'DELIVERED', 'COMPLETED']) assert.equal(exports.isCustomsOrderCandidate({ status, taxMode: 'TAX_REFUND' }), true)
|
||||
})
|
||||
|
||||
test('actual page count and queue filter both drop a record when its upload is complete', () => {
|
||||
test('upload status changes refresh server counts while initial detail reads do not reload the list', async () => {
|
||||
const page = readFileSync(new URL('../views/FirstLegOrdersView.vue', import.meta.url), 'utf8')
|
||||
const block = page.slice(page.indexOf('const orderQueueCounts ='), page.indexOf('const pagedOrders ='))
|
||||
const rows = ref([{ id: 'waiting', businessSummary: {} }, { id: 'completed', businessSummary: {} }])
|
||||
const states = ref({ waiting: { status: 'WAITING_CUSTOMER_DOCUMENTS', merchantStatus: 'WAITING_UPLOAD' }, completed: { status: 'COMPLETED', merchantStatus: 'CUSTOMS_COMPLETED' } })
|
||||
const queue = ref('customs')
|
||||
const read = new Function('computed', 'queryMatchedOrders', 'activeOrderQueue', 'eligibleCustomsDetail', 'needsCustomsUpload', block + '\nreturn { orderQueueCounts, filteredOrders }')
|
||||
const view = read(computed, rows, queue, order => states.value[order.id], exports.needsCustomsUpload)
|
||||
assert.equal(view.orderQueueCounts.value.customs, 1)
|
||||
assert.deepEqual(view.filteredOrders.value.map(row => row.id), ['waiting'])
|
||||
states.value.waiting.merchantStatus = 'DOCUMENT_UPLOADED'
|
||||
assert.equal(view.orderQueueCounts.value.customs, 0); assert.equal(view.filteredOrders.value.length, 0)
|
||||
queue.value = 'all'; assert.equal(view.filteredOrders.value.length, 2)
|
||||
const block = page.slice(page.indexOf('function updateCustomsDetail('), page.indexOf('const detailOrder ='))
|
||||
const js = ts.transpileModule(block, { compilerOptions: { target: ts.ScriptTarget.ES2022 } }).outputText
|
||||
const states = {}, id = ref('one'), create = ref(false), detail = ref(false)
|
||||
let reloads = 0
|
||||
const update = new Function('customsByOrder', 'customsDialogOrderId', 'isCreatePage', 'isDetailPage', 'loadOrderPage', js + ';return updateCustomsDetail')(states, id, create, detail, async () => reloads++)
|
||||
update({ merchantStatus: 'WAITING_UPLOAD' }); assert.equal(reloads, 0)
|
||||
update({ merchantStatus: 'WAITING_UPLOAD' }); assert.equal(reloads, 0)
|
||||
update({ merchantStatus: 'DOCUMENT_UPLOADED' }); assert.equal(reloads, 1)
|
||||
assert.equal(states.one.merchantStatus, 'DOCUMENT_UPLOADED')
|
||||
detail.value = true; update({ merchantStatus: 'WAITING_UPLOAD' }); assert.equal(reloads, 1)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user