import { test } from 'node:test'; import assert from 'node:assert/strict'; // adapt.js 是前端纯函数适配层(app/src),用 node:test 直接校验项目摘要映射。 import { adaptProject } from '../app/src/adapt.js'; const baseProject = { id: 'p1', name: 'maestro', repoPath: '/Users/x/dev/maestro', defaultBranch: 'main', autonomy: 'auto-easy', concurrency: 2, status: 'active', }; test('adaptProject: agents 徽标取 s.running(实际在途 agent),而非 s.executing', () => { // planner/spec 阶段:有真实在途 run(running>0)但没有 executing 任务 → 徽标必须仍显示 agent 数 const p = adaptProject({ ...baseProject, summary: { running: 1, executing: 0, blocked: 0, attention: 0 } }); assert.equal(p.agents, 1, 'analyzing/speccing 阶段也应计入 agent 徽标'); assert.equal(p.state, 'running'); }); test('adaptProject: 无在途 run 时 agents 徽标为 0(即使有 executing 任务计数错位)', () => { const p = adaptProject({ ...baseProject, summary: { running: 0, executing: 0, blocked: 2, attention: 1 } }); assert.equal(p.agents, 0); assert.equal(p.blocked, 2); assert.equal(p.pending, 1); assert.equal(p.state, 'blocked'); }); test('adaptProject: summary 缺省时各计数回退 0', () => { const p = adaptProject({ ...baseProject }); assert.equal(p.agents, 0); assert.equal(p.pending, 0); assert.equal(p.blocked, 0); });