Ctrl K
ComunidadGuías…

browser/test-e2e.mjs

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import { client } from "@mercuryworkshop/wisp-js/client";

const WS = "ws://127.0.0.1:8090/wisp/";
const conn = new client.ClientConnection(WS);

const done = (ok, msg) => { console.log(ok ? "PASS" : "FAIL", msg); process.exit(ok ? 0 : 1); };
setTimeout(() => done(false, "timeout (15s)"), 15000);

conn.onopen = () => {
  console.log("INFO wisp connected, opening stream -> example.com:80");
  const s = conn.create_stream("example.com", 80);
  const chunks = [];
  s.onmessage = (data) => chunks.push(Buffer.from(data));
  s.onclose = () => {
    const resp = Buffer.concat(chunks).toString("latin1");
    const head = resp.split("\r\n").slice(0, 1)[0] || "";
    console.log("INFO response:", head);
    const ok = /HTTP\/1\.[01] (200|30\d)/.test(resp) && /Example Domain|<html/i.test(resp);
    done(ok, ok ? `tunnelled and received HTML (${resp.length}B)` : `unexpected response (${resp.length}B)`);
  };
  s.onerror = (e) => done(false, "stream error: " + e);
  s.send(new TextEncoder().encode("GET / HTTP/1.0\r\nHost: example.com\r\nConnection: close\r\n\r\n"));
};
conn.onerror = (e) => done(false, "conn error: " + e);