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

@@ -4,6 +4,7 @@ import {
mapFallbackDispatchError,
toDispatchFailure,
} from './query-dispatch-error-mapper.js';
import { GSDToolsError } from '../gsd-tools-error.js';
describe('query dispatch error mapper', () => {
it('maps native timeout errors', () => {
@@ -24,6 +25,18 @@ describe('query dispatch error mapper', () => {
expect(err.details).toMatchObject({ command: 'state.json', args: [] });
});
it('maps typed timeout classification from GSDToolsError', () => {
const err = mapNativeDispatchError(
new GSDToolsError('timeout', 'state', ['load'], null, '', {
classification: { kind: 'timeout', timeoutMs: 1234 },
}),
'state.load',
[],
);
expect(err.kind).toBe('native_timeout');
expect(err.details).toMatchObject({ timeout_ms: 1234 });
});
it('maps fallback errors', () => {
const err = mapFallbackDispatchError(new Error('spawn ENOENT'), 'state', ['load']);
expect(err.kind).toBe('fallback_failure');