import assert from "node:assert/strict";
import { readFile, stat } from "node:fs/promises";
import test from "node:test";

test("build emits independent host and iframe documents", async () => {
  const [host, page] = await Promise.all([
    readFile(new URL("../dist/index.html", import.meta.url), "utf8"),
    readFile(new URL("../dist/page.html", import.meta.url), "utf8"),
  ]);

  assert.match(host, /Wasmeld Console/);
  assert.match(page, /Wasmeld Console Page/);
  assert.notEqual(host, page);
});

test("build emits an installable PWA worker and manifest", async () => {
  const manifest = JSON.parse(
    await readFile(new URL("../dist/manifest.webmanifest", import.meta.url), "utf8"),
  );
  assert.equal(manifest.short_name, "Wasmeld");
  assert.equal(manifest.start_url, "/");
  assert.ok((await stat(new URL("../dist/sw.js", import.meta.url))).size > 0);
});
