recordedStepLine function ✓ 100.0%

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

Metrics

LOC: 48 Complexity: 32 Params: 3 Coverage: 100.0% (20/20 lines, 31x executed)

Signature

recordedStepLine( step: RecordedStep, useSmartSelectors: boolean, ): : string

Architecture violations

View all

  • [warning] max-cyclomatic-complexity: 'recordedStepLine' has cyclomatic complexity 32 (max 10)

Source Code

function recordedStepLine(
  step: RecordedStep,
  useSmartSelectors: boolean,
): string {
  const sel =
    step.smartSelectors?.length && useSmartSelectors
      ? escapeString(pickBestSelector(step.smartSelectors, step.selector ?? ""))
      : escapeString(step.selector ?? "");
  const val = escapeString(step.value ?? "");
  const comment = step.label ? ` // ${step.label}` : "";

  switch (step.type) {
    case "navigate":
      return `            ->visit('${escapeString(step.url ?? "")}')${comment}`;
    case "fill":
      return `            ->type('${sel}', '${val}')${comment}`;
    case "click":
      return `            ->click('${sel}')${comment}`;
    case "select":
      return `            ->select('${sel}', '${val}')${comment}`;
    case "check":
      return `            ->check('${sel}')${comment}`;
    case "uncheck":
      return `            ->uncheck('${sel}')${comment}`;
    case "clear":
      return `            ->clear('${sel}')${comment}`;
    case "submit":
      return `            ->click('${sel}')${comment}`;
    case "hover":
      return `            ->mouseover('${sel}')${comment}`;
    case "press-key":
      return `            ->keys('${sel}', '{${(step.key ?? "").toLowerCase()}}')${comment}`;
    case "wait-for-element":
      return `            ->waitFor('${sel}', ${Math.round((step.waitTimeout ?? 5000) / 1000)})${comment}`;
    case "wait-for-hidden":
      return `            ->waitUntilMissing('${sel}', ${Math.round((step.waitTimeout ?? 10000) / 1000)})${comment}`;
    case "wait-for-url":
      return `            ->waitForLocation('${escapeString(step.url ?? step.value ?? "")}')${comment}`;
    case "wait-for-network-idle":
      return `            ->pause(1000)${comment}`;
    case "scroll":
      return `            ->script('window.scrollTo(${step.scrollPosition?.x ?? 0}, ${step.scrollPosition?.y ?? 0})')${comment}`;
    case "assert":
      return step.assertion
        ? assertionLine(step.assertion)
        : `            // assert${comment}`;
  }
}

Dependencies (Outgoing)

graph LR recordedStepLine["recordedStepLine"] escapeString["escapeString"] assertionLine["assertionLine"] recordedStepLine -->|calls| escapeString recordedStepLine -->|calls| assertionLine style recordedStepLine fill:#dbeafe,stroke:#2563eb,stroke-width:2px click recordedStepLine "497458dc759562f6.html" click escapeString "5c2f25e3b4548c2d.html" click assertionLine "0f28f576e085ec59.html"
TargetType
escapeString calls
assertionLine calls

No incoming dependencies.