优化海外采购新增页布局和预算摘要
This commit is contained in:
@@ -88,6 +88,54 @@ function viewHarness({ createPage = false, detailPage = false, api = {}, storage
|
||||
return { state, props, route, auth, pushes, storage, dispose: () => dispose.forEach(callback => callback()) }
|
||||
}
|
||||
|
||||
test('create summary follows the current form, preserves cents and clears with the draft', () => {
|
||||
const harness = viewHarness({ createPage: true })
|
||||
try {
|
||||
assert.equal(harness.state.summaryQuantity.value, '1')
|
||||
assert.equal(harness.state.summaryUnitPrice.value, '—')
|
||||
assert.equal(harness.state.budgetTotal.value, null)
|
||||
assert.equal(harness.state.summaryCurrencyName.value, '美元')
|
||||
Object.assign(harness.state.form, draft())
|
||||
assert.equal(harness.state.summaryQuantity.value, '3')
|
||||
assert.equal(harness.state.summaryUnitPrice.value, '0.29')
|
||||
assert.equal(harness.state.budgetTotal.value, '0.87')
|
||||
harness.state.form.currency = 'CNY'
|
||||
assert.equal(harness.state.summaryCurrencyName.value, '人民币')
|
||||
assert.equal(presentation.money(harness.state.budgetTotal.value, harness.state.form.currency), 'CNY 0.87')
|
||||
harness.state.form.budgetUnitPrice = '0'
|
||||
assert.equal(harness.state.summaryUnitPrice.value, '0.00')
|
||||
assert.equal(harness.state.budgetTotal.value, '0.00')
|
||||
harness.state.resetForm()
|
||||
assert.equal(harness.state.summaryQuantity.value, '1')
|
||||
assert.equal(harness.state.summaryUnitPrice.value, '—')
|
||||
assert.equal(harness.state.budgetTotal.value, null)
|
||||
assert.equal(harness.state.summaryCurrencyName.value, '美元')
|
||||
} finally { harness.dispose() }
|
||||
})
|
||||
|
||||
test('create summary never retains a stale budget when quantity or price becomes invalid', () => {
|
||||
const harness = viewHarness({ createPage: true })
|
||||
try {
|
||||
Object.assign(harness.state.form, draft())
|
||||
for (const quantity of ['', '0', '-1', '1.5', '9007199254740992']) {
|
||||
harness.state.form.purchaseQuantity = quantity
|
||||
assert.equal(harness.state.summaryQuantity.value, '—')
|
||||
assert.equal(harness.state.budgetTotal.value, null)
|
||||
assert.equal(harness.state.form.purchaseQuantity, quantity)
|
||||
}
|
||||
harness.state.form.purchaseQuantity = '3'
|
||||
assert.equal(harness.state.budgetTotal.value, '0.87')
|
||||
for (const price of ['', '-1', '1.001', 'invalid']) {
|
||||
harness.state.form.budgetUnitPrice = price
|
||||
assert.equal(harness.state.summaryUnitPrice.value, '—')
|
||||
assert.equal(harness.state.budgetTotal.value, null)
|
||||
assert.equal(harness.state.form.budgetUnitPrice, price)
|
||||
}
|
||||
harness.state.form.budgetUnitPrice = '0.29'
|
||||
assert.equal(harness.state.budgetTotal.value, '0.87')
|
||||
} finally { harness.dispose() }
|
||||
})
|
||||
|
||||
test('detail has one in-flight request and an older response cannot overwrite another order', async () => {
|
||||
const calls = [], pending = new Map()
|
||||
const harness = viewHarness({ detailPage: true, api: { getProcurement: orderNo => { calls.push(orderNo); return new Promise(resolve => pending.set(orderNo, resolve)) } } })
|
||||
|
||||
Reference in New Issue
Block a user