generateFieldValue function exported ✓ 81.0%

Last updated: 2026-03-03T18:32:34.140Z

Metrics

LOC: 48 Complexity: 10 Params: 1 Coverage: 81.0% (17/21 lines, 4x executed)

Signature

generateFieldValue(field: FormField): : Promise<string>

Summary

Generates a realistic test value for a form field via Chrome AI. Constructs a contextual prompt from the field's metadata (label, name, type, …).

Tags

#@param field - The detected form field to generate a value for#@returns A trimmed AI-generated value, or `""` when the session is unavailable

Source Code

export async function generateFieldValue(field: FormField): Promise<string> {
  log.debug(
    `Gerando valor para campo: selector="${field.selector}" label="${field.label ?? ""}" name="${field.name ?? ""}" type="${field.fieldType}"`,
  );

  const aiSession = await getSession();
  if (!aiSession) {
    log.warn("Sessão Chrome AI indisponível — não é possível gerar valor.");
    return "";
  }

  const input: FieldValueInput = {
    label: field.label,
    name: field.name,
    id: field.id,
    placeholder: field.placeholder,
    autocomplete: field.autocomplete,
    inputType: (field.element as HTMLInputElement).type || "text",
    fieldType: field.fieldType,
  };

  const prompt = fieldValueGeneratorPrompt.buildPrompt(input);

  log.groupCollapsed(
    `Prompt → campo: "${field.label ?? field.name ?? field.selector}"`,
  );
  log.debug("▶ Prompt completo:\n" + prompt);
  log.groupEnd();

  let result: string;
  try {
    result = await aiSession.prompt(prompt);
  } catch (err) {
    log.warn("Erro ao gerar valor com Chrome AI — destruindo sessão:", err);
    session?.destroy();
    session = null;
    return "";
  }

  log.groupCollapsed(
    `Resposta ← campo: "${field.label ?? field.name ?? field.selector}"`,
  );
  log.debug("◄ Resposta raw:\n" + result);
  log.debug('\u25c4 Valor final (trimmed): "' + result.trim() + '"');
  log.groupEnd();

  return result.trim();
}

Dependencies (Outgoing)

graph LR generateFieldValue["generateFieldValue"] getSession["getSession"] generateFieldValue -->|calls| getSession style generateFieldValue fill:#dbeafe,stroke:#2563eb,stroke-width:2px click generateFieldValue "2fb9e83e355e13d0.html" click getSession "59bdb203dfc665ba.html"
TargetType
getSession calls

No incoming dependencies.