testOpenTakesWhatShotTakes

tcmts.cli.browser.test.testOpenTakesWhatShotTakes · #fij6h3gr · function

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/,
  );
}

uses