28 lines
901 B
TypeScript
28 lines
901 B
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import {
|
|
errorMessage,
|
|
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', () => {
|
|
const msg = timeoutMessage('state', ['load'], 30000);
|
|
expect(isTimeoutMessage(msg)).toBe(true);
|
|
expect(parseTimeoutMs(msg)).toBe(30000);
|
|
});
|
|
|
|
it('normalizes unknown error values', () => {
|
|
expect(errorMessage('boom')).toBe('boom');
|
|
expect(errorMessage(new Error('x'))).toBe('x');
|
|
});
|
|
|
|
it('prefers typed classification from GSDToolsError', () => {
|
|
const err = GSDToolsError.timeout('x', 'state', ['load'], '', 2000);
|
|
expect(toFailureSignal(err)).toEqual({ kind: 'timeout', message: 'x', timeoutMs: 2000 });
|
|
});
|
|
});
|