fix(client): render estimated sailing fields from unified orders
This commit is contained in:
@@ -1,11 +1,32 @@
|
||||
import assert from 'node:assert/strict'
|
||||
import { readFileSync } from 'node:fs'
|
||||
import test from 'node:test'
|
||||
import { runInNewContext } from 'node:vm'
|
||||
import ts from 'typescript'
|
||||
|
||||
const storeSource = readFileSync(new URL('./firstLegOrders.ts', import.meta.url), 'utf8')
|
||||
const apiSource = readFileSync(new URL('../api/firstLeg.ts', import.meta.url), 'utf8')
|
||||
const unifiedApiSource = readFileSync(new URL('../api/unifiedOrders.ts', import.meta.url), 'utf8')
|
||||
|
||||
test('renders estimated sailing from the current API without substituting actual departure', () => {
|
||||
const mapper = storeSource.slice(storeSource.indexOf('function businessSummary('), storeSource.indexOf('\nconst unifiedActionLabels'))
|
||||
const javascript = ts.transpileModule(mapper, { compilerOptions: { target: ts.ScriptTarget.ES2022 } }).outputText
|
||||
const map = runInNewContext(`${javascript}; businessSummary`)
|
||||
const transport = {
|
||||
vesselName: 'REASSIGNED', voyageNo: 'V02',
|
||||
estimatedSailingAt: '2026-10-07T08:00:00', actualSailingAt: '2026-10-08T09:00:00',
|
||||
effectiveSailingAt: '2026-10-08T09:00:00', effectiveSailingAtEstimated: false,
|
||||
estimatedPortArrivalAt: '2026-10-27T08:00:00', actualPortArrivalAt: null,
|
||||
}
|
||||
const mapped = map({ transport })
|
||||
assert.equal(mapped.estimatedSailingAt, transport.estimatedSailingAt)
|
||||
assert.equal(mapped.estimatedPortArrivalAt, transport.estimatedPortArrivalAt)
|
||||
assert.equal(mapped.vesselName, 'REASSIGNED')
|
||||
assert.equal(mapped.voyageNo, 'V02')
|
||||
assert.equal(map().estimatedSailingAt, '')
|
||||
assert.equal(map({ transport: null }).estimatedPortArrivalAt, '')
|
||||
})
|
||||
|
||||
test('maps the first-leg aggregate list fields without loading detail rows', () => {
|
||||
assert.match(apiSource, /interface MerchantFirstLegOrderRow/)
|
||||
assert.match(apiSource, /skuNos: string \| string\[\] \| null/)
|
||||
|
||||
@@ -220,8 +220,8 @@ function businessSummary(summary?: MerchantUnifiedOrderRow): FirstLegOrder['busi
|
||||
cabinetNo: summary?.transport?.cabinetNo ?? '',
|
||||
vesselName: summary?.transport?.vesselName ?? '',
|
||||
voyageNo: summary?.transport?.voyageNo ?? '',
|
||||
sailingAt: summary?.transport?.sailingAt ?? '',
|
||||
portArrivalAt: summary?.transport?.portArrivalAt ?? '',
|
||||
estimatedSailingAt: summary?.transport?.estimatedSailingAt ?? '',
|
||||
estimatedPortArrivalAt: summary?.transport?.estimatedPortArrivalAt ?? '',
|
||||
inboundId: summary?.inboundId == null ? '' : String(summary.inboundId),
|
||||
inboundVersion: summary?.inboundVersion ?? null,
|
||||
inboundCode: summary?.inboundCode ?? '',
|
||||
|
||||
Reference in New Issue
Block a user