修复变更、增加筛选条件
This commit is contained in:
1 parent
712ec51d68
commit
e06afc8c33
137 files changed
+35872
-275
No files matched your search
@@ -0,0 +1,41 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
import { parseProgramInput } from '../src/program-parser.js';
|
||||
|
||||
const input = `安排酒店变更
|
||||
团号:LW-TEST-HOTEL
|
||||
入住日期:2026-09-15
|
||||
离店日期:2026-09-16
|
||||
酒店搜索:测试酒店twn
|
||||
间数:9`;
|
||||
const receivedAt = '2026-09-11T08:50:12Z';
|
||||
|
||||
test('dated hotel replacement parses old dates separately from the new resource and count', async () => {
|
||||
const result = await parseProgramInput({ rawText: input, receivedAt });
|
||||
assert.equal(result.status, 'agent_parse_passed', JSON.stringify(result));
|
||||
assert.equal(result.business_route_id, 'arrangement_hotel_update');
|
||||
assert.deepEqual((result.operation?.data as any).arrangement, {
|
||||
mode: 'update', selection: { start_date: '2026-09-15', end_date: '2026-09-16' },
|
||||
changes: { resource: { name: '测试酒店twn', keyword: '测试酒店twn' }, room_count: 9 }
|
||||
});
|
||||
});
|
||||
|
||||
test('hotel replacement rejects missing dates, invalid count, reversed dates and mixed update styles', async () => {
|
||||
for (const rawText of [
|
||||
input.replace('入住日期:2026-09-15\n', ''),
|
||||
input.replace('离店日期:2026-09-16\n', ''),
|
||||
input.replace('间数:9', '间数:0'),
|
||||
input.replace('离店日期:2026-09-16', '离店日期:2026-09-14'),
|
||||
`${input}\n目标变更:离店日期改为2026-09-18`
|
||||
]) {
|
||||
const result = await parseProgramInput({ rawText, receivedAt });
|
||||
assert.notEqual(result.status, 'agent_parse_passed', JSON.stringify(result));
|
||||
assert.equal(result.operation, null);
|
||||
}
|
||||
});
|
||||
|
||||
test('legacy hotel departure and count changes remain supported', async () => {
|
||||
const result = await parseProgramInput({ rawText: '安排变更\n团号:LW-TEST-HOTEL\n目标变更:离店日期改为2026-09-18;房间数改为9\n安排类型:酒店', receivedAt });
|
||||
assert.equal(result.status, 'agent_parse_passed', JSON.stringify(result));
|
||||
assert.deepEqual((result.operation?.data as any).arrangement, { mode: 'update', changes: { end_date: '2026-09-18', room_count: 9 } });
|
||||
});
|
||||
Reference in new issue
Block a user