This commit is contained in:
@@ -202,13 +202,17 @@ test('order payment record status is independent from order status and channels
|
||||
|
||||
test('exchange phone conflicts support HTTP error and business response without inventing a missing number', async () => {
|
||||
const module = await loadModule('src/utils/business/exchangeError.ts')
|
||||
const failure = { code: 1202, data: { phone: '13800000000' } }
|
||||
assert.match(module.getExchangePhoneConflictMessage(failure), /13800000000/)
|
||||
const failure = {
|
||||
code: 1202,
|
||||
data: { phone: '13800000000' },
|
||||
msg: '新资产已绑定手机号,请先在后台解除该资产的手机号绑定,再重新提交换货申请'
|
||||
}
|
||||
assert.equal(module.getExchangePhoneConflictMessage(failure), failure.msg)
|
||||
assert.equal(
|
||||
module.getExchangePhoneConflictMessage({ response: { data: failure } }),
|
||||
module.getExchangePhoneConflictMessage(failure)
|
||||
)
|
||||
assert.match(module.getExchangePhoneConflictMessage({ code: 1202 }), /请先到/)
|
||||
assert.match(module.getExchangePhoneConflictMessage({ code: 1202 }), /换货申请未完成/)
|
||||
assert.doesNotMatch(module.getExchangePhoneConflictMessage({ code: 1202 }), /undefined|null/)
|
||||
assert.equal(module.getExchangePhoneConflictMessage({ code: 1206 }), undefined)
|
||||
assert.equal(
|
||||
@@ -238,12 +242,9 @@ test('exchange association handoff carries only the new asset and its bound phon
|
||||
phone: '19232713115'
|
||||
}
|
||||
)
|
||||
assert.deepEqual(
|
||||
assert.equal(
|
||||
getExchangePhoneAssociationQuery({ response: { data: { code: 1202 } } }, newAsset),
|
||||
{
|
||||
asset_identifier: '89860624590014594318',
|
||||
phone: '19232713115'
|
||||
}
|
||||
undefined
|
||||
)
|
||||
assert.equal(getExchangePhoneAssociationQuery({ code: 1206 }, newAsset), undefined)
|
||||
assert.equal(
|
||||
@@ -266,6 +267,31 @@ test('exchange association handoff carries only the new asset and its bound phon
|
||||
)
|
||||
})
|
||||
|
||||
test('1202 with data null keeps the original msg and cannot navigate to unbind despite asset phone history', async () => {
|
||||
const { getExchangePhoneConflictMessage, getExchangePhoneAssociationQuery } = await loadModule(
|
||||
'src/utils/business/exchangeError.ts'
|
||||
)
|
||||
const failure = {
|
||||
code: 1202,
|
||||
data: null,
|
||||
msg: '该资产已完成过换货,如需再次换货请使用换货后的新资产'
|
||||
}
|
||||
const newAsset = { asset_identifier: '89860624590014594318', associated_phones: ['19232713115'] }
|
||||
for (const value of [failure, { response: { data: failure } }]) {
|
||||
assert.equal(getExchangePhoneConflictMessage(value), failure.msg)
|
||||
assert.equal(getExchangePhoneAssociationQuery(value, newAsset), undefined)
|
||||
}
|
||||
for (const phone of ['', ' ', null, 19232713115]) {
|
||||
assert.equal(
|
||||
getExchangePhoneAssociationQuery({ ...failure, data: { phone } }, newAsset),
|
||||
undefined
|
||||
)
|
||||
}
|
||||
const page = await readFile('src/views/asset-management/exchange-management/index.vue', 'utf8')
|
||||
assert.match(page, /if \(!canManageAssociations\)/)
|
||||
assert.match(page, /ElMessageBox.alert\(conflictMessage, '换货提示'/)
|
||||
})
|
||||
|
||||
test('association preselection excludes old assets, different phones and invalid historical rows', async () => {
|
||||
const {
|
||||
getPhoneAssetAssociationTarget,
|
||||
|
||||
@@ -178,6 +178,17 @@ export const mockApiPlugin = {
|
||||
return
|
||||
}
|
||||
if (req.method !== 'GET') {
|
||||
if (path === '/api/admin/exchanges/2/complete') {
|
||||
res.setHeader('Content-Type', 'application/json; charset=utf-8')
|
||||
res.end(
|
||||
JSON.stringify({
|
||||
code: 1202,
|
||||
data: null,
|
||||
msg: '该资产已完成过换货,如需再次换货请使用换货后的新资产'
|
||||
})
|
||||
)
|
||||
return
|
||||
}
|
||||
if (path === '/api/admin/phone-asset-associations/batch-unbind') {
|
||||
let body = ''
|
||||
req.on('data', (chunk) => {
|
||||
@@ -213,7 +224,7 @@ export const mockApiPlugin = {
|
||||
res.end(
|
||||
JSON.stringify({
|
||||
code: 1202,
|
||||
msg: '模拟请求:未调用真实后台',
|
||||
msg: '新资产已绑定手机号,请先在后台解除该资产的手机号绑定,再重新提交换货申请',
|
||||
data: { phone: '13800000000' }
|
||||
})
|
||||
)
|
||||
@@ -238,8 +249,11 @@ export const mockApiPlugin = {
|
||||
)
|
||||
)
|
||||
if (path === '/api/admin/orders/1') data = order
|
||||
if (path === '/api/admin/exchanges') data = page([exchange])
|
||||
if (path === '/api/admin/exchanges')
|
||||
data = page([exchange, { ...exchange, id: 2, exchange_no: 'MOCK-EXCHANGE-002' }])
|
||||
if (path === '/api/admin/exchanges/1') data = exchange
|
||||
if (path === '/api/admin/exchanges/2')
|
||||
data = { ...exchange, id: 2, exchange_no: 'MOCK-EXCHANGE-002' }
|
||||
if (path === '/api/admin/orders') data = page([order])
|
||||
if (path === '/api/admin/employee-collection-applications/1')
|
||||
data = { application, allocations: [], attempts: [] }
|
||||
|
||||
Reference in New Issue
Block a user