generateNegativeTest function test ✓ 100.0%

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

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
    ? `  await page.goto('${escapeString(options.pageUrl)}');\n\n`
    : "";

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

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

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

  return [
    ``,
    `test('should show validation errors for empty required fields', async ({ page }) => {`,
    urlLine + `  // Leave required fields empty and submit` + submitLine,
    ``,
    ...assertionLines,
    `  // Required fields should show validation`,
    ...requiredActions.map((a) => {
      const sel = escapeString(resolveSelector(a, useSmartSelectors));
      return `  await expect(page.locator('${sel}')).toHaveAttribute('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 "764ef404a760ebd4.html" click escapeString "5c2f25e3b4548c2d.html" click resolveSelector "361a4021ea67e76c.html"
TargetType
escapeString calls
resolveSelector calls

Impact (Incoming)

graph LR generateNegativeTest["generateNegativeTest"] generate["generate"] generate -->|calls| generateNegativeTest generate -->|calls| generateNegativeTest generate -->|calls| generateNegativeTest style generateNegativeTest fill:#dbeafe,stroke:#2563eb,stroke-width:2px click generateNegativeTest "764ef404a760ebd4.html" click generate "99b2368cd85b1514.html"
SourceType
generate calls
generate calls
generate calls