* refactor(query): deepen command definition seam and fold fallback mapping cleanup * refactor(query): add shared dispatch formatting module seam * fix(query): restore QueryResult type import in dispatch deps * test/query: align raw-output policy and definition normalization contracts * refactor(query): deepen diagnosis, invariant report, and error taxonomy seams * refactor(query): deepen dispatch plan, fallback bridge, policy snapshot, and hints seams * refactor(query): deepen validation, fallback policy, capability, and result builder seams * refactor(query): deepen resolution strategy, output classifier, observability, and policy-capability seams * refactor(query): finalize deep strategy/classifier/observability/capability seams * test/query: address coderabbit inline and out-of-diff dispatch nits * fix(query): address remaining coderabbit input-validation and bridge stderr threads * fix(query): address remaining coderabbit dispatch and strategy/output nits
23 lines
970 B
TypeScript
23 lines
970 B
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import { createRegistry } from './index.js';
|
|
import { diagnoseUnknownCommand } from './query-command-diagnosis.js';
|
|
|
|
describe('query-command-diagnosis', () => {
|
|
it('returns structured diagnosis and rendered message with restricted fallback', () => {
|
|
const registry = createRegistry();
|
|
const out = diagnoseUnknownCommand('unknown-cmd', [], registry, true);
|
|
|
|
expect(out.normalized).toBe('unknown-cmd');
|
|
expect(Array.isArray(out.hints)).toBe(true);
|
|
expect(out.hints.length).toBeGreaterThan(0);
|
|
expect(out.message).toContain('Unknown command: "unknown-cmd"');
|
|
expect(out.message).toContain('CJS fallback is disabled');
|
|
});
|
|
|
|
it('omits disabled-fallback clause when fallback is not restricted', () => {
|
|
const registry = createRegistry();
|
|
const out = diagnoseUnknownCommand('unknown-cmd', [], registry, false);
|
|
expect(out.message).not.toContain('CJS fallback is disabled');
|
|
});
|
|
});
|