| 1234567891011121314151617181920212223242526272829 |
- 'use strict';
- const assert = require('assert/strict');
- const { parseFlexibleDeadline, shanghaiCalendar } = require('../mcp/src/core/deadline-parser');
- function main() {
- const now = new Date('2026-07-17T04:00:00.000Z');
- const parse = value => parseFlexibleDeadline(value, { now });
- assert.deepEqual(shanghaiCalendar(now), { year: 2026, month: 7, day: 17 });
- assert.equal(parse('2026-07-20 18:00'), '2026-07-20 18:00');
- assert.equal(parse('2026-07-20T18:00:00'), '2026-07-20 18:00');
- assert.equal(parse('2026/07/20 18:00'), '2026-07-20 18:00');
- assert.equal(parse('2026-07-20'), '2026-07-20 18:00');
- assert.equal(parse('今天18点'), '2026-07-17 18:00');
- assert.equal(parse('明天'), '2026-07-18 18:00');
- assert.equal(parse('明天下午6点'), '2026-07-18 18:00');
- assert.equal(parse('后天上午9点半'), '2026-07-19 09:30');
- assert.equal(parse('3天后'), '2026-07-20 18:00');
- assert.equal(parse('三天后晚上8点'), '2026-07-20 20:00');
- assert.equal(parse('一周后'), '2026-07-24 18:00');
- assert.equal(parse('7月21日中午12点'), '2026-07-21 12:00');
- assert.throws(() => parse('2026-02-30'), /截止日期不存在/);
- assert.throws(() => parse('尽快处理'), /无法识别截止时间/);
- process.stdout.write(`${JSON.stringify({ status: 'ok', timezone: 'Asia/Shanghai', passed: 15 }, null, 2)}\n`);
- }
- main();
|