diff --git a/.claude/skills/web-test/scripts/run.mjs b/.claude/skills/web-test/scripts/run.mjs index ca0c7b43..8c2880e4 100644 --- a/.claude/skills/web-test/scripts/run.mjs +++ b/.claude/skills/web-test/scripts/run.mjs @@ -6,11 +6,12 @@ * `exec`, `shot`, `stop` send requests to the running server. * * Usage: - * node src/run.mjs start — launch browser, connect to 1C, serve requests - * node src/run.mjs exec — run script against existing session - * node src/run.mjs shot [file] — take screenshot - * node src/run.mjs stop — logout + close browser - * node src/run.mjs status — check session + * node src/run.mjs start — launch browser, connect to 1C, serve requests + * node src/run.mjs run — autonomous: connect, execute script, disconnect + * node src/run.mjs exec — run script against existing session + * node src/run.mjs shot [file] — take screenshot + * node src/run.mjs stop — logout + close browser + * node src/run.mjs status — check session */ import http from 'http'; import * as browser from './browser.mjs'; @@ -25,6 +26,7 @@ const [,, cmd, ...args] = process.argv; switch (cmd) { case 'start': await cmdStart(args[0]); break; + case 'run': await cmdRun(args[0], args[1]); break; case 'exec': await cmdExec(args[0]); break; case 'shot': await cmdShot(args[0]); break; case 'stop': await cmdStop(); break; @@ -135,6 +137,26 @@ async function executeScript(code) { } +// ============================================================ +// run: autonomous connect → execute → disconnect (no server) +// ============================================================ + +async function cmdRun(url, fileOrDash) { + if (!url || !fileOrDash) die('Usage: node src/run.mjs run '); + + const code = fileOrDash === '-' + ? await readStdin() + : readFileSync(resolve(fileOrDash), 'utf-8'); + + await browser.connect(url); + const result = await executeScript(code); + await browser.disconnect(); + + out(result); + if (!result.ok) process.exit(1); +} + + // ============================================================ // exec: send script to running server // ============================================================ @@ -256,9 +278,10 @@ function usage() { die(`Usage: node src/run.mjs [args] Commands: - start Launch browser and connect to 1C web client - exec Execute script (file path or - for stdin) - shot [file] Take screenshot (default: shot.png) - stop Logout and close browser - status Check session status`); + start Launch browser and connect to 1C web client + run Autonomous: connect, execute script, disconnect + exec Execute script (file path or - for stdin) + shot [file] Take screenshot (default: shot.png) + stop Logout and close browser + status Check session status`); }