generateNegativeTest function test ✓ 100.0%

Last updated: 2026-03-01T23:25:47.083Z

Metrics

LOC: 38 Complexity: 6 Params: 4 Coverage: 100.0% (11/11 lines, 3x executed)

Signature

generateNegativeTest( actions: CapturedAction[], options: E2EGenerateOptions, useSmartSelectors: boolean, ): : string

Source Code

function generateNegativeTest(
  actions: CapturedAction[],
  options: E2EGenerateOptions,
  useSmartSelectors: boolean,
): string {
  const requiredActions = actions.filter((a) => a.required);
  if (requiredActions.length === 0) return "";

  const urlLine = options.pageUrl
    ? `    cy.visit('${escapeString(options.pageUrl)}');\n\n`
    : "";

  const submitAction = actions.find(
    (a) => a.actionType === "click" || a.actionType === "submit",
  );

  const submitLine = submitAction
    ? `\n    cy.get('${escapeString(resolveSelector(submitAction, useSmartSelectors))}').click();`
    : "";

  const assertionLines = (options.assertions ?? [])
    .filter((a) => a.type === "field-error")
    .map(assertionLine);

  return [
    ``,
    `  it('should show validation errors for empty required fields', () => {`,
    urlLine + `    // Leave required fields empty and submit` + submitLine,
    ``,
    ...assertionLines,
    `    // Required fields should show validation`,
    ...requiredActions.map((a) => {
      const sel = escapeString(resolveSelector(a, useSmartSelectors));
      return `    cy.get('${sel}').should('have.attr', 'required');`;
    }),
    `  });`,
  ].join("\n");
}

Dependencies (Outgoing)

graph LR generateNegativeTest["generateNegativeTest"] escapeString["escapeString"] resolveSelector["resolveSelector"] generateNegativeTest -->|calls| escapeString generateNegativeTest -->|calls| resolveSelector style generateNegativeTest fill:#dbeafe,stroke:#2563eb,stroke-width:2px click generateNegativeTest "724b6e084e55abc9.html" click escapeString "5c2f25e3b4548c2d.html" click resolveSelector "361a4021ea67e76c.html"
TargetType
escapeString calls
resolveSelector calls

No incoming dependencies.