test: close the two coverage tails on the plan surfaces

The plan unit's same-reference gate for a repeated identical /plan selection
(the one uncovered branch in plan-mode/index.ts) gains an explicit case, and
ui-plan's empty node-half apply is exercised the way sibling surface plugins
do (the ui-conversation no-op precedent). Both files read 100% across all
four axes under the CI coverage lane's per-file thresholds.
This commit is contained in:
imccyu
2026-07-28 21:49:53 +08:00
parent 9be6419cec
commit 76796df39b
2 changed files with 8 additions and 0 deletions

View File

@@ -12,6 +12,7 @@ import type { SessionId } from '@deepseek-ai/dsh-client-runtime/client'
import { PlanModeControl } from '../src/client/PlanModeControl.tsx'
import type { PlanModeControlInjected } from '../src/client/index.ts'
import { apply, inject } from '../src/client/index.ts'
import { apply as nodeApply } from '../src/index.ts'
const SID = 's-plan' as SessionId
@@ -35,6 +36,10 @@ describe('ui-plan browser apply', () => {
expect(inject).toEqual(['slots', 'connection', 'conversation'])
})
it('node-half apply is an intentional no-op', () => {
expect(() => { nodeApply() }).not.toThrow()
})
it('fails loud when conversation did not declare the plan seat', async () => {
const ctx = new Context()
await ctx.plugin(SlotsService).await()

View File

@@ -73,6 +73,9 @@ describe('plan projection unit', () => {
const bench = await harness(true)
runPlanCommand(bench.session, '', 0)
expect(bench.values().plan).toEqual({ active: false, pending: true })
// A repeated identical selection returns the same state reference (no frame).
runPlanCommand(bench.session, '', 1)
expect(bench.values().plan).toEqual({ active: false, pending: true })
commitPlanMode(bench.session, true, 0)
expect(bench.values().plan).toEqual({ active: true, pending: false })
})