refactor: add typed query failure signals

This commit is contained in:
Tom Boucher
2026-05-04 19:57:17 -04:00
parent ba6100c548
commit 5cfd874058
8 changed files with 81 additions and 14 deletions

View File

@@ -5,7 +5,9 @@ import {
isTimeoutMessage,
parseTimeoutMs,
timeoutMessage,
toFailureSignal,
} from './query-failure-classification.js';
import { GSDToolsError } from './gsd-tools-error.js';
describe('query failure classification', () => {
it('extracts timeout metadata from message', () => {
@@ -25,4 +27,11 @@ describe('query failure classification', () => {
expect(errorMessage('boom')).toBe('boom');
expect(errorMessage(new Error('x'))).toBe('x');
});
it('prefers typed classification from GSDToolsError', () => {
const err = new GSDToolsError('x', 'state', ['load'], null, '', {
classification: { kind: 'timeout', timeoutMs: 2000 },
});
expect(toFailureSignal(err)).toEqual({ kind: 'timeout', message: 'x', timeoutMs: 2000 });
});
});