testOpenTakesWhatShotTakes
open given a port, or host:port on this machine, opens it as a URL, as tcm shot does; a URL, a domain and
every other command's arguments are agent-browser's as given; a component's name nothing runs is an error.
import { browserArgs } from "#codebase/tcmts/cli/browser"; import assert from "node:assert/strict"; export const testOpenTakesWhatShotTakes = () => { assert.deepEqual(browserArgs(["open", "5173"], undefined), ["open", "http://127.0.0.1:5173/"]); assert.deepEqual(browserArgs(["--headed", "open", "localhost:3000/x"], undefined), [ "--headed", "open", "http://localhost:3000/x", ]); assert.deepEqual(browserArgs(["--session", "s", "goto", ":8080"], undefined), [ "--session", "s", "goto", "http://127.0.0.1:8080/", ]); for (const args of [ ["open", "https://example.com"], ["open", "example.com"], ["open", "file:///tmp/a.html"], ["fill", "@e2", "5173"], ["fill", "@e2", "open"], ["snapshot", "-i"], ["open"], ]) assert.deepEqual(browserArgs(args, undefined), args); assert.throws( () => browserArgs(["open", "app.App"], undefined), /no tcm dev or start is running it/, ); }