| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- const assert = require('assert/strict');
- const fs = require('fs');
- const os = require('os');
- const path = require('path');
- const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'qiwei-goal-smoke-'));
- process.env.QIWEI_OUTPUTS_DIR = tempDir;
- const {
- qiweiGoalCreatePlan,
- qiweiGoalGet,
- qiweiGoalUpdateTask,
- qiweiGoalImportMeetingActions,
- } = require('../mcp/src/tools/qiwei-goal-management-run');
- async function main() {
- try {
- const created = await qiweiGoalCreatePlan({
- title: '企微智能办公上线',
- objective: '让客户可以使用会议、目标推进和智能客服能力',
- owner: '项目负责人',
- deadline: '2026-08-31',
- acceptance: '三类核心场景全部通过验收',
- milestones: [{
- title: '客户试用',
- deadline: '2026-08-15',
- tasks: [{ title: '完成客户培训', owner: '实施顾问', deadline: '2026-08-10', acceptance: '培训签到和反馈完成' }],
- }],
- });
- assert.equal(created.status, 'ok');
- assert.equal(created.summary.taskCount, 1);
- assert.equal(created.summary.progress, 0);
- assert.equal(created.files.length, 1);
- const goalId = created.summary.goalId;
- const taskId = created.data.plan.milestones[0].tasks[0].id;
- const imported = await qiweiGoalImportMeetingActions({
- goalId,
- meetingTitle: '客户试用推进会',
- meetingDate: '2026-07-16',
- actions: [
- { title: '整理试用账号', owner: '产品经理', deadline: '2026-07-20' },
- { title: '确认第二轮演示时间' },
- ],
- });
- assert.equal(imported.status, 'ok');
- assert.equal(imported.summary.imported, 2);
- assert.equal(imported.summary.needsConfirmation, 1);
- const updated = await qiweiGoalUpdateTask({ goalId, taskId, status: 'done', note: '培训已完成' });
- assert.equal(updated.status, 'ok');
- assert.equal(updated.summary.done, 1);
- assert.equal(updated.summary.progress, 33);
- const detail = await qiweiGoalGet({ goalId });
- assert.equal(detail.status, 'ok');
- assert.equal(detail.data.plan.milestones.length, 2);
- assert.equal(detail.summary.taskCount, 3);
- assert(fs.existsSync(path.join(tempDir, 'goals', 'plans.json')));
- process.stdout.write(`${JSON.stringify({ status: 'ok', checks: 4, progress: detail.summary.progress }, null, 2)}\n`);
- } finally {
- fs.rmSync(tempDir, { recursive: true, force: true });
- }
- }
- main().catch(error => {
- process.stderr.write(`${error.stack || error.message}\n`);
- process.exitCode = 1;
- });
|