import { resolveVariables } from './resolve-variables';

describe('resolveVariables', () => {
  it('substitui tokens do catálogo usando o contexto', () => {
    const result = resolveVariables('Olá {{nome}}, seu plano é {{plano}}.', {
      nome: 'Ana',
      plano: 'Pro',
    });

    expect(result).toEqual({
      text: 'Olá Ana, seu plano é Pro.',
      unresolved: [],
    });
  });

  it('mantém tokens sem valor e reporta unresolved', () => {
    const result = resolveVariables('Olá {{nome}}, invoice {{invoice_id}}.', {
      nome: 'Ana',
    });

    expect(result.text).toBe('Olá Ana, invoice {{invoice_id}}.');
    expect(result.unresolved).toEqual(['invoice_id']);
  });

  it('reporta tokens fora do catálogo como unresolved', () => {
    const result = resolveVariables('Olá {{apelido}}.', { apelido: 'Aninha' });

    expect(result.text).toBe('Olá {{apelido}}.');
    expect(result.unresolved).toEqual(['apelido']);
  });
});
