#!/usr/bin/env node // MIT licence. Copyright (c) 2026 Tuper. Written by an AI agent (Claude); use at your own risk. // Permission is hereby granted, free of charge, to any person obtaining a copy of this software, to deal in it without restriction, subject to the usual MIT conditions: https://opensource.org/license/mit // Rule 74 click test for our free tool pages: type into the inputs like a person, then click the // page's buttons and check the output. A textarea/input 'change' event fires on the mousedown that // starts the click; if the handler re-renders the panel that holds the button, the click is lost. // // node tools/click-test.mjs tools/click-test/.json [--show] // // Spec: { "url": "https://.../?nopv=1", "steps": [ step, ... ] } step.sel is a CSS selector. // {"type": "sel","text":"..."} keystrokes into an input/textarea (focus stays there) // {"fill": "sel","text":"..."} set the value at once (fires input, not keystrokes) // {"select": "sel","value":"..."} pick an