agent-ecosystem/test/main/services/team/ClaudeDoctorProbe.test.ts

74 lines
2.6 KiB
TypeScript

// @vitest-environment node
import { describe, expect, it } from 'vitest';
import { extractDoctorInvokedCandidates } from '@main/services/team/ClaudeDoctorProbe';
describe('ClaudeDoctorProbe', () => {
it('extracts a single invoked path from doctor output', () => {
const output = `
────────────────────────────────────
Diagnostics
└ Currently running: native (2.1.101)
└ Path: /Users/belief/.local/share/claude/versions/2.1.101
└ Invoked: /Users/belief/.local/share/claude/versions/2.1.101
└ Config install method: native
Press Enter to continue…
`;
expect(extractDoctorInvokedCandidates(output)).toEqual([
'/Users/belief/.local/share/claude/versions/2.1.101',
]);
});
it('reconstructs wrapped invoked paths without corrupting spaces', () => {
const output = `
\u001B[2J────────────────────────────────────
Diagnostics
└ Invoked: /Applications/Agent Teams${' '}
AI.app/Contents/Resources/runtime/clau
de-multimodel
└ Config install method: native
Press Enter to continue…
`;
expect(extractDoctorInvokedCandidates(output)).toEqual([
'/Applications/Agent Teams AI.app/Contents/Resources/runtime/claude-multimodel',
]);
});
it('keeps all invoked candidates across repeated redraw frames', () => {
const output = `
────────────────────────────────────
Diagnostics
└ Invoked: /Users/belief/.local/sh
are/claude/versions/2.1.100
└ Config install method: native
Press Enter to continue…
────────────────────────────────────
Diagnostics
└ Invoked: /Users/belief/.local/sh
are/claude/versions/2.1.101
└ Config install method: native
Press Enter to continue…
`;
expect(extractDoctorInvokedCandidates(output)).toEqual([
'/Users/belief/.local/share/claude/versions/2.1.100',
'/Users/belief/.local/share/claude/versions/2.1.101',
]);
});
it('accepts ASCII bullet variants from degraded terminal captures', () => {
const output = `
Diagnostics
L Path: /Users/vladislavkonovalov/.nvm/versions/node/v22.22.1/bin/node
L Invoked: /Users/vladislavkonovalov/.claude/local/node_modules/.bin/claude
L Config install method: local
`;
expect(extractDoctorInvokedCandidates(output)).toEqual([
'/Users/vladislavkonovalov/.claude/local/node_modules/.bin/claude',
]);
});
});