captureUnrecordedFormFields function ✓ 88.2%
Last updated: 2026-03-05T11:49:57.418Z
Metrics
LOC: 45
Complexity: 21
Params: 1
Coverage: 88.2% (15/17 lines, 0x executed)
Signature
captureUnrecordedFormFields(form: HTMLFormElement): : void
Summary
Captures values of form fields that do not yet have a recorded fill/select/check step. Needed for fields with default values, auto-filled values, or values set programmatically (e.g. by the Fill All extension).
Architecture violations
- [warning] max-cyclomatic-complexity: 'captureUnrecordedFormFields' has cyclomatic complexity 21 (max 10)
Source Code
function captureUnrecordedFormFields(form: HTMLFormElement): void {
if (!session) return;
// Build a set of selectors that already have a recorded step in this session
const recordedSelectors = new Set(
session.steps
.filter((s) =>
(["fill", "select", "check", "uncheck"] as RecordedStepType[]).includes(
s.type,
),
)
.map((s) => s.selector)
.filter(Boolean),
);
const fields = form.querySelectorAll<
HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement
>("input, select, textarea");
for (const field of fields) {
if (isExtensionUI(field)) continue;
if (!isVisible(field)) continue;
const sel = buildQuickSelector(field);
if (recordedSelectors.has(sel)) continue; // already recorded
if (field instanceof HTMLSelectElement && field.value) {
addStep(buildStep("select", field, { value: field.value }));
} else if (field instanceof HTMLInputElement) {
if (field.type === "checkbox") {
if (field.checked) addStep(buildStep("check", field));
} else if (field.type === "radio") {
if (field.checked)
addStep(buildStep("check", field, { value: field.value }));
} else if (
!["submit", "button", "reset", "image"].includes(field.type) &&
field.value
) {
addStep(buildStep("fill", field, { value: field.value }));
}
} else if (field instanceof HTMLTextAreaElement && field.value) {
addStep(buildStep("fill", field, { value: field.value }));
}
}
}
Dependencies (Outgoing)
| Target | Type |
|---|---|
| isExtensionUI | calls |
| isVisible | calls |
| buildQuickSelector | calls |
| addStep | calls |
| buildStep | calls |
Impact (Incoming)
| Source | Type |
|---|---|
| onSubmit | calls |