recordedStepLine function ✓ 100.0%
Last updated: 2026-03-01T23:25:47.084Z
Metrics
LOC: 50
Complexity: 31
Params: 3
Coverage: 100.0% (20/20 lines, 35x executed)
Signature
recordedStepLine(
step: RecordedStep,
useSmartSelectors: boolean,
): : string
Architecture violations
- [warning] max-cyclomatic-complexity: 'recordedStepLine' has cyclomatic complexity 31 (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 ` await page.goto('${escapeString(step.url ?? "")}');${comment}`;
case "fill":
return ` await page.locator('${sel}').fill('${val}');${comment}`;
case "click":
return ` await page.locator('${sel}').click();${comment}`;
case "select":
return ` await page.locator('${sel}').selectOption('${val}');${comment}`;
case "check":
return ` await page.locator('${sel}').check();${comment}`;
case "uncheck":
return ` await page.locator('${sel}').uncheck();${comment}`;
case "clear":
return ` await page.locator('${sel}').clear();${comment}`;
case "submit":
return ` await page.locator('${sel}').click();${comment}`;
case "hover":
return ` await page.locator('${sel}').hover();${comment}`;
case "press-key":
return ` await page.keyboard.press('${escapeString(step.key ?? "")}');${comment}`;
case "wait-for-element":
return ` await page.locator('${sel}').waitFor({ state: 'visible', timeout: ${step.waitTimeout ?? 5000} });${comment}`;
case "wait-for-hidden":
return ` await page.locator('${sel}').waitFor({ state: 'hidden', timeout: ${step.waitTimeout ?? 10000} });${comment}`;
case "wait-for-url":
return ` await page.waitForURL('${escapeString(step.url ?? step.value ?? "")}');${comment}`;
case "wait-for-network-idle":
return ` await page.waitForLoadState('networkidle');${comment}`;
case "scroll":
return step.scrollPosition
? ` await page.evaluate(() => window.scrollTo(${step.scrollPosition.x}, ${step.scrollPosition.y}));${comment}`
: ` // scroll${comment}`;
case "assert":
return step.assertion
? assertionLine(step.assertion)
: ` // assert${comment}`;
}
}
Dependencies (Outgoing)
| Target | Type |
|---|---|
| escapeString | calls |
| assertionLine | calls |
Impact (Incoming)
| Source | Type |
|---|---|
| generateFromRecording | calls |
| generateFromRecording | calls |
| generateFromRecording | calls |