import assert from 'node:assert/strict'
import { renderToStaticMarkup } from 'react-dom/server'
import {
PlanCreateBlock,
PlanUpdateBlock,
TaskBlock,
ThinkingBlock
} from '../src/renderer/src/workbuddy/conversation/SpecializedBlocks'
const reasoning = renderToStaticMarkup()
assert.match(reasoning, /Reasoning body/)
assert.match(reasoning, /思考中/)
assert.doesNotMatch(reasoning, /]*>[+-]<\/span>/)
const plan = renderToStaticMarkup(
undefined}
onDownloadPlan={() => undefined}
onBuildPlan={() => undefined}
/>
)
assert.match(plan, /plan\.md/)
assert.match(plan, /aria-label="Download plan"[^>]*>执行)
assert.doesNotMatch(plan, />(?:OK|>|x|-))
const activePlan = renderToStaticMarkup(
)
assert.match(activePlan, /使用 search 探索中\.\.\./)
const failedPlan = renderToStaticMarkup(
)
assert.match(failedPlan, /aria-label="Failed"/)
const cancelledPlan = renderToStaticMarkup(
)
assert.match(cancelledPlan, /aria-label="Cancelled"/)
const update = renderToStaticMarkup(
)
assert.match(update, /Release plan confirmed/)
assert.match(update, /cb-plan-update-spinner/)
const task = renderToStaticMarkup(
)
assert.match(task, /任务 builder 子代理: Run checks/)
assert.match(task, /任务执行已取消!/)
assert.match(task, /aria-expanded="true" aria-label="Collapse task"/)
assert.match(task, /execute_command/)
assert.match(task, /Stopped output/)
const pendingTask = renderToStaticMarkup()
assert.match(pendingTask, /正在创建任务/)
console.log('Specialized block icon and label SSR regression checks passed')