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: {} }), '' ) })