Skip to content

Commit 4e7fb77

Browse files
FourWindffjohannesjo
authored andcommitted
test: cover resume args failure detection
1 parent 60d76cb commit 4e7fb77

1 file changed

Lines changed: 49 additions & 1 deletion

File tree

src/lib/agent-args.test.ts

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { describe, expect, it } from 'vitest';
22

3-
import { buildTaskAgentArgs } from './agent-args';
3+
import { buildTaskAgentArgs, isResumeArgsFailure } from './agent-args';
44

55
const codexAgent = {
66
id: 'codex',
@@ -136,3 +136,51 @@ describe('buildTaskAgentArgs', () => {
136136
).toEqual(['-c']);
137137
});
138138
});
139+
140+
describe('isResumeArgsFailure', () => {
141+
describe('Claude resume failure patterns', () => {
142+
it('returns true when Claude reports no conversation to continue', () => {
143+
expect(isResumeArgsFailure('claude', ['No conversation found to continue'])).toBe(true);
144+
});
145+
146+
it('returns true for a Claude command with a full path', () => {
147+
expect(
148+
isResumeArgsFailure('/usr/local/bin/claude', ['No conversation found to continue']),
149+
).toBe(true);
150+
});
151+
152+
it('returns false when Claude output does not match a resume failure', () => {
153+
expect(isResumeArgsFailure('claude', ['Resuming conversation...'])).toBe(false);
154+
});
155+
156+
it('matches Claude resume failures across multiple output lines', () => {
157+
expect(
158+
isResumeArgsFailure('claude', [
159+
'\x1b[1mClaude Code\x1b[22m',
160+
'────────────────────────────────',
161+
'No conversation found to continue',
162+
'Run claude without --continue to start a new conversation',
163+
'❯ ',
164+
]),
165+
).toBe(true);
166+
});
167+
});
168+
169+
describe('unsupported commands', () => {
170+
it('returns false for commands without configured resume failure patterns', () => {
171+
expect(isResumeArgsFailure('unknown-agent', ['No conversation found to continue'])).toBe(
172+
false,
173+
);
174+
});
175+
176+
it('returns false for full-path commands without configured resume failure patterns', () => {
177+
expect(
178+
isResumeArgsFailure('/usr/local/bin/unknown-agent', ['No conversation found to continue']),
179+
).toBe(false);
180+
});
181+
});
182+
183+
it('returns false for empty last output', () => {
184+
expect(isResumeArgsFailure('claude', [])).toBe(false);
185+
});
186+
});

0 commit comments

Comments
 (0)