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: callModel happy path (mock client)', async () => {
  const res = await safeImport('LLMManager');
  if (!res.ok) { skip(res.reason); return; }
  const L = res.mod;

  // Hooks requis pour injection
  if (typeof L.__setClient !== 'function' || typeof L.callModel !== 'function') {
    skip('LLMManager test hooks not found (__setClient) or callModel missing');
    return;
  }

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

  const out = await L.callModel({ provider:'mock', model:'fake-1', input:'Hello' });
  assert.ok(out);
  const text = out.completion || out.text || out.output;
  assert.equal(typeof text, 'string');
  assert.ok(/TEST\[fake-1\]::/.test(text), 'completion should come from fake client');
});
