mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
test: close the merged branches' coverage gaps
Cover the fs-provider load path without a cancellation signal, the app-level resumeCommand forwarding, and a command returning an error result.
This commit is contained in:
@@ -383,6 +383,20 @@ describe('workspace context instruction discovery', () => {
|
||||
}
|
||||
})
|
||||
|
||||
it('loads through a FileSystem provider without a cancellation signal', async () => {
|
||||
// Direct-library callers may omit `signal`; the fs-backed probe must pass
|
||||
// no options object rather than `{ signal: undefined }`.
|
||||
const ctx = new Context()
|
||||
await ctx.plugin(RecordingFileSystem)
|
||||
const fs = ctx.fs as RecordingFileSystem
|
||||
fs.entries.set('/repo/.git', { type: 'directory' })
|
||||
fs.entries.set('/repo/AGENTS.md', { type: 'file', content: 'signalless rule' })
|
||||
const rendered = await loadBaselineInstructions({ cwd: '/repo', maxBytes: 65536 }, fs)
|
||||
expect(rendered?.text).toContain('signalless rule')
|
||||
expect(fs.signals).toHaveLength(0)
|
||||
await ctx.fiber.dispose()
|
||||
})
|
||||
|
||||
it('skips a file that becomes unreadable after discovery without failing the request', async () => {
|
||||
const root = await tempRepo()
|
||||
const home = await tempRepo()
|
||||
|
||||
@@ -33,6 +33,7 @@ describe('dsh-tui-demo app', () => {
|
||||
persistenceRoot: '/tmp/tui-sessions',
|
||||
persistenceCompression: 'none',
|
||||
welcome: 'TUI ready',
|
||||
resumeCommand: 'dsh --resume {session}',
|
||||
ui: { color: false, maxToolOutputLines: 3 },
|
||||
skills: { tool: { catalogDescriptionMaxLength: 8 } },
|
||||
toolBash: { enableRunInBackground: false },
|
||||
@@ -52,7 +53,12 @@ describe('dsh-tui-demo app', () => {
|
||||
expect(calls[0]?.config).toBeUndefined()
|
||||
expect(calls[2]?.config).toEqual({ root: '/tmp/tui-sessions', compression: 'none' })
|
||||
const tuiConfig = calls[4]?.config as { sessionId: string }
|
||||
expect(tuiConfig).toMatchObject({ welcome: 'TUI ready', color: false, maxToolOutputLines: 3 })
|
||||
expect(tuiConfig).toMatchObject({
|
||||
welcome: 'TUI ready',
|
||||
resumeCommand: 'dsh --resume {session}',
|
||||
color: false,
|
||||
maxToolOutputLines: 3,
|
||||
})
|
||||
expect(tuiConfig.sessionId).toMatch(/^main-session-[0-9a-f-]{36}$/)
|
||||
const spineConfig = calls[5]?.config as {
|
||||
readonly agents: Array<Record<string, unknown>>
|
||||
|
||||
@@ -1099,6 +1099,11 @@ describe('pi-tui chat lifecycle and transcript', () => {
|
||||
description: 'Fail a plugin command',
|
||||
handler: () => { throw new Error('plugin command exploded') },
|
||||
})
|
||||
result.ctx.commands.register({
|
||||
name: 'plugin-error',
|
||||
description: 'Return an error result',
|
||||
handler: () => ({ kind: 'error' as const, text: 'plugin error result' }),
|
||||
})
|
||||
|
||||
result.terminal.send('/plugin-check value ')
|
||||
result.terminal.send('\r')
|
||||
@@ -1115,6 +1120,10 @@ describe('pi-tui chat lifecycle and transcript', () => {
|
||||
result.terminal.send('\r')
|
||||
await tick()
|
||||
expect(result.terminal.output).toContain('Command failed: plugin command exploded')
|
||||
result.terminal.send('/plugin-error')
|
||||
result.terminal.send('\r')
|
||||
await tick()
|
||||
expect(result.terminal.output).toContain('plugin error result')
|
||||
result.terminal.send('/help')
|
||||
result.terminal.send('\r')
|
||||
await tick()
|
||||
@@ -1124,6 +1133,7 @@ describe('pi-tui chat lifecycle and transcript', () => {
|
||||
await result.controller.dispose()
|
||||
expect(result.ctx.commands.list(result.agent).map(command => command.name)).toEqual([
|
||||
'plugin-check',
|
||||
'plugin-error',
|
||||
'plugin-fail',
|
||||
])
|
||||
await result.ctx.fiber.dispose()
|
||||
|
||||
Reference in New Issue
Block a user