refactor(web): 应用外壳/差旅详情/报销创建视图适配主题与多 task
- AppShellRouteView/useAppShell 适配主题皮肤与会话入口 - TravelRequestDetailView/travelRequestDetailSetup 差旅详情适配,travel-request-detail-view.css 调整 - TravelReimbursementCreateView/useTravelReimbursementCreateViewLifecycle 创建视图适配 - 更新 app-shell-financial-assistant-entry/travel-request-detail-risk-advice 测试
This commit is contained in:
@@ -182,10 +182,13 @@ test('application entry keeps its own assistant source without creating a separa
|
||||
test('application edit prefill opens assistant without auto submit', () => {
|
||||
assert.match(appShellRouteView, /:initial-prompt-auto-submit="smartEntryContext\.initialPromptAutoSubmit"/)
|
||||
assert.match(appShellRouteView, /:initial-application-preview="smartEntryContext\.initialApplicationPreview"/)
|
||||
assert.match(appShellRouteView, /:initial-draft-payload="smartEntryContext\.initialDraftPayload"/)
|
||||
assert.match(appShellComposable, /initialPromptAutoSubmit:\s*true/)
|
||||
assert.match(appShellComposable, /initialApplicationPreview:\s*null/)
|
||||
assert.match(appShellComposable, /initialDraftPayload:\s*null/)
|
||||
assert.match(appShellComposable, /initialPromptAutoSubmit:\s*payload\.initialPromptAutoSubmit !== false/)
|
||||
assert.match(appShellComposable, /initialApplicationPreview:\s*payload\.applicationPreview && typeof payload\.applicationPreview === 'object'/)
|
||||
assert.match(appShellComposable, /initialDraftPayload:\s*payload\.draftPayload && typeof payload\.draftPayload === 'object'/)
|
||||
assert.match(
|
||||
assistantScript,
|
||||
/initialPromptAutoSubmit:\s*\{[\s\S]*type:\s*Boolean[\s\S]*default:\s*true/
|
||||
@@ -194,9 +197,13 @@ test('application edit prefill opens assistant without auto submit', () => {
|
||||
assistantScript,
|
||||
/initialApplicationPreview:\s*\{[\s\S]*type:\s*Object[\s\S]*default:\s*null/
|
||||
)
|
||||
assert.match(
|
||||
assistantScript,
|
||||
/initialDraftPayload:\s*\{[\s\S]*type:\s*Object[\s\S]*default:\s*null/
|
||||
)
|
||||
assert.match(
|
||||
assistantSurface,
|
||||
/props\.initialApplicationPreview[\s\S]*normalizeApplicationPreview\(props\.initialApplicationPreview\)[\s\S]*createMessage\('assistant', buildLocalApplicationPreviewMessage\(applicationPreview\)/
|
||||
/props\.initialApplicationPreview[\s\S]*normalizeApplicationPreview\(props\.initialApplicationPreview\)[\s\S]*const draftPayload = props\.initialDraftPayload[\s\S]*createMessage\('assistant', buildLocalApplicationPreviewMessage\(applicationPreview\)[\s\S]*draftPayload/
|
||||
)
|
||||
assert.match(assistantSessionStateScript, /&& !props\.initialApplicationPreview/)
|
||||
assert.match(
|
||||
|
||||
@@ -1593,27 +1593,35 @@ test('application detail uses application labels instead of reimbursement labels
|
||||
assert.match(detailViewTemplate, /当前申请单已进入流程,详情页仅展示状态与申请信息。/)
|
||||
})
|
||||
|
||||
test('returned application detail can open assistant with editable prefill', () => {
|
||||
assert.match(
|
||||
detailViewTemplate,
|
||||
/v-if="canModifyReturnedApplication"[\s\S]*@click="handleModifyApplication"[\s\S]*修改申请/
|
||||
)
|
||||
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.doesNotMatch(detailViewScript, /handleModifyApplication/)
|
||||
assert.match(
|
||||
detailViewScript,
|
||||
/const canModifyReturnedApplication = computed\(\(\) => \([\s\S]*isApplicationDocument\.value[\s\S]*isCurrentApplicant\.value[\s\S]*returned/
|
||||
/const canModifyApplication = computed\(\(\) => \([\s\S]*isApplicationDocument\.value[\s\S]*isEditableRequest\.value[\s\S]*isCurrentApplicant\.value[\s\S]*\)\)/
|
||||
)
|
||||
assert.match(detailViewScript, /function buildApplicationEditPreview\(\)/)
|
||||
assert.match(detailViewScript, /applicationDetailFactItems\.value[\s\S]*sourceText:\s*'修改申请'/)
|
||||
assert.match(detailViewScript, /fields:\s*\{[\s\S]*applicationType:[\s\S]*reason:[\s\S]*transportMode:/)
|
||||
assert.match(detailViewScript, /function handleModifyApplication\(\)/)
|
||||
assert.match(detailViewScript, /source:\s*'application'/)
|
||||
assert.match(detailViewScript, /sessionType:\s*'application'/)
|
||||
assert.match(detailViewScript, /prompt:\s*''/)
|
||||
assert.match(detailViewScript, /applicationPreview:\s*buildApplicationEditPreview\(\)/)
|
||||
assert.match(detailViewScript, /applicationEditMode:\s*true/)
|
||||
assert.match(detailViewScript, /initialPromptAutoSubmit:\s*false/)
|
||||
assert.match(detailViewScript, /canModifyReturnedApplication,/)
|
||||
assert.match(detailViewScript, /handleModifyApplication,/)
|
||||
assert.match(detailViewScript, /editableFields:\s*applicationEditEditableFields/)
|
||||
assert.match(detailViewScript, /fields:\s*\{[\s\S]*applicationType:[\s\S]*reason:[\s\S]*transportMode:/)
|
||||
assert.match(detailViewScript, /function buildApplicationEditDraftPayload\(\)/)
|
||||
assert.match(detailViewScript, /draft_type:\s*'expense_application'/)
|
||||
assert.match(detailViewScript, /claim_id:\s*claimId/)
|
||||
assert.match(detailViewScript, /application_edit_mode:\s*true/)
|
||||
assert.match(detailViewScript, /function canEditApplicationDetailItem\(item = \{\}\)/)
|
||||
assert.match(detailViewScript, /function openApplicationDetailEditor\(item = \{\}\)/)
|
||||
assert.match(detailViewScript, /async function saveApplicationDetailEdit\(item = \{\}\)/)
|
||||
assert.match(detailViewScript, /runAiApplicationPreviewAction\(\{[\s\S]*AI_APPLICATION_ACTION_SAVE_DRAFT/)
|
||||
assert.match(detailViewScript, /emit\('request-updated'/)
|
||||
assert.match(detailViewScript, /canModifyApplication,/)
|
||||
assert.match(detailViewScript, /canEditApplicationDetailItem,/)
|
||||
assert.match(detailViewScript, /openApplicationDetailEditor,/)
|
||||
assert.match(detailViewScript, /saveApplicationDetailEdit,/)
|
||||
})
|
||||
|
||||
test('application detail does not show optional travel receipt reminders', () => {
|
||||
|
||||
Reference in New Issue
Block a user