Files
X-Financial/web/tests/assistant-suggested-action-prefill.test.mjs

67 lines
1.9 KiB
JavaScript
Raw Permalink Normal View History

import assert from 'node:assert/strict'
import test from 'node:test'
import {
ASSISTANT_SCOPE_ACTION_FILL_COMPOSER
} from '../src/utils/assistantSessionScope.js'
import {
mergeComposerPrefill,
resolveSuggestedActionPrefill
} from '../src/utils/assistantSuggestedActionPrefill.js'
test('suggested action prefill uses backend prompt payload', () => {
assert.equal(
resolveSuggestedActionPrefill({
action_type: 'prefill_composer',
payload: {
application_field: 'time',
prompt_prefill: '申请时间段:'
}
}),
'申请时间段:'
)
})
test('suggested action prefill falls back to application field templates', () => {
assert.equal(
resolveSuggestedActionPrefill({
action_type: 'prefill_composer',
payload: { application_field: 'amount' }
}),
'用户预估费用:'
)
assert.equal(
resolveSuggestedActionPrefill({
action_type: 'ask_clarification',
payload: { application_field: 'amount' }
}),
''
)
})
test('composer prefill appends to existing draft without duplication', () => {
assert.equal(mergeComposerPrefill('', '事由:'), '事由:')
assert.equal(mergeComposerPrefill('地点:上海', '事由:'), '地点:上海\n事由')
assert.equal(mergeComposerPrefill('地点:上海\n事由', '事由:'), '地点:上海\n事由')
})
test('fill_composer action resolves payload.fill_text as prefill', () => {
assert.equal(
resolveSuggestedActionPrefill({
action_type: ASSISTANT_SCOPE_ACTION_FILL_COMPOSER,
payload: { fill_text: '我想要申请明天去北京出差3天' }
}),
'我想要申请明天去北京出差3天'
)
})
test('fill_composer action without fill_text falls back to empty (no application_field lookup)', () => {
assert.equal(
resolveSuggestedActionPrefill({
action_type: ASSISTANT_SCOPE_ACTION_FILL_COMPOSER,
payload: {}
}),
''
)
})