feat(platform): close AI expense value loop
Add tenant-safe value, telemetry, connector, commercial, and production-readiness foundations.
This commit is contained in:
@@ -127,6 +127,14 @@ const relatedApplicationCardTemplate = readFileSync(
|
||||
fileURLToPath(new URL('../src/components/travel/TravelRequestRelatedApplicationCard.vue', import.meta.url)),
|
||||
'utf8'
|
||||
)
|
||||
const applicationFactsTemplate = readFileSync(
|
||||
fileURLToPath(new URL('../src/components/travel/TravelRequestApplicationFacts.vue', import.meta.url)),
|
||||
'utf8'
|
||||
)
|
||||
const applicationFactsStyle = readFileSync(
|
||||
fileURLToPath(new URL('../src/assets/styles/components/travel-request-application-facts.css', import.meta.url)),
|
||||
'utf8'
|
||||
)
|
||||
const progressCardTemplate = readFileSync(
|
||||
fileURLToPath(new URL('../src/components/travel/TravelRequestProgressCard.vue', import.meta.url)),
|
||||
'utf8'
|
||||
@@ -1583,10 +1591,12 @@ test('application detail uses application labels instead of reimbursement labels
|
||||
assert.match(progressCardTemplate, /isApplicationDocument \? '申请进度'/)
|
||||
assert.match(detailViewTemplate, /isApplicationDocument \? '申请详情' : '费用明细'/)
|
||||
assert.match(detailViewTemplate, /展示本次申请的事实信息、职级规则测算和用户预估费用/)
|
||||
assert.match(detailViewTemplate, /class="application-detail-facts"/)
|
||||
assert.match(detailViewTemplate, /applicationDetailFactItems/)
|
||||
assert.match(detailViewTemplate, /<TravelRequestApplicationFacts/)
|
||||
assert.match(detailViewTemplate, /:fact-items="applicationDetailFactItems"/)
|
||||
assert.match(applicationFactsTemplate, /class="application-detail-facts"/)
|
||||
assert.match(applicationFactsTemplate, /v-for="item in factItems"/)
|
||||
assert.match(detailViewScript, /buildApplicationDetailFactItems/)
|
||||
assert.match(detailViewStyle, /\.application-detail-fact\.highlight strong/)
|
||||
assert.match(applicationFactsStyle, /\.application-detail-fact\.highlight strong/)
|
||||
assert.match(detailViewTemplate, /isApplicationDocument \? '申请类型' : '报销类型'/)
|
||||
assert.match(detailViewTemplate, /isApplicationDocument \? '预计金额' : '报销金额'/)
|
||||
assert.match(detailViewTemplate, /isApplicationDocument \? '退回申请' : '退回单据'/)
|
||||
@@ -1595,10 +1605,13 @@ test('application detail uses application labels instead of reimbursement labels
|
||||
|
||||
test('draft or returned application detail edits allowed facts inline', () => {
|
||||
assert.doesNotMatch(detailViewTemplate, /修改申请/)
|
||||
assert.match(detailViewTemplate, /canEditApplicationDetailItem\(item\)/)
|
||||
assert.match(detailViewTemplate, /application-detail-edit-btn/)
|
||||
assert.match(detailViewTemplate, /openApplicationDetailEditor\(item\)/)
|
||||
assert.match(detailViewTemplate, /saveApplicationDetailEdit\(item\)/)
|
||||
assert.match(detailViewTemplate, /:can-edit-item="canEditApplicationDetailItem"/)
|
||||
assert.match(detailViewTemplate, /@open="openApplicationDetailEditor"/)
|
||||
assert.match(detailViewTemplate, /@save="saveApplicationDetailEdit"/)
|
||||
assert.match(applicationFactsTemplate, /canEditItem\(item\)/)
|
||||
assert.match(applicationFactsTemplate, /application-detail-edit-btn/)
|
||||
assert.match(applicationFactsTemplate, /emit\('open', item\)/)
|
||||
assert.match(applicationFactsTemplate, /emit\('save', item\)/)
|
||||
assert.doesNotMatch(detailViewScript, /handleModifyApplication/)
|
||||
assert.match(
|
||||
detailViewScript,
|
||||
|
||||
Reference in New Issue
Block a user