import test from 'node:test';
import assert from 'node:assert';
import { safeImport } from '../_helpers/path.js';
import { FakeLLMClient } from '../_helpers/fakeLLMClient.js';
import { AutoReporter } from '../reporters/AutoReporter.js';

function skip(msg){ console.warn('[SKIP]', msg); }


// Auto-Reporter Configuration
const autoReporter = new AutoReporter();

test('LLMManager: supports abort/timeout behavior', async () => {
  const res = await safeImport('LLMManager');
  if (!res.ok) { skip(res.reason); return; }
  const L = res.mod;

  if (typeof L.__setClient !== 'function') { skip('Missing __setClient'); return; }

  const fake = new FakeLLMClient({ delayMs: 200 });
  L.__setClient('mock', fake);

  const ac = new AbortController();
  const p = L.callModel({ provider:'mock', model:'fake-1', input:'slow', abortSignal: ac.signal });
  setTimeout(()=> ac.abort(), 50);

  let aborted = false;
  try { await p; } catch(e){ aborted = true; }
  assert.ok(aborted, 'expected abort to be propagated');
});
