Ctrl K
ComunidadGuías…

website/tests/dev-server.test.mjs

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

Archivo original ↗Preguntar a KiBot
import assert from "node:assert/strict";
import { spawn } from "node:child_process";
import test from "node:test";

test("serves the website on the advertised loopback URL", { timeout: 10_000 }, async () => {
  const child = spawn(process.execPath, ["scripts/dev-server.mjs"], {
    cwd: new URL("..", import.meta.url),
    env: { ...process.env, HOST: "127.0.0.1", PORT: "0" },
    stdio: ["ignore", "pipe", "pipe"],
  });

  try {
    const url = await new Promise((resolve, reject) => {
      child.once("error", reject);
      child.stderr.once("data", (data) => reject(new Error(data.toString())));
      child.stdout.once("data", (data) => {
        const match = data.toString().match(/Website dev server: (http:\/\/127\.0\.0\.1:\d+)/);
        match ? resolve(match[1]) : reject(new Error(`Unexpected server output: ${data}`));
      });
    });

    const response = await fetch(url);
    assert.equal(response.status, 200);
    assert.match(await response.text(), /<title>Moltis/);
  } finally {
    child.kill();
  }
});