testPageUnderABase

tcmts.cli.web.testPageUnderABase · #lq2aypsb · term

import { normalBase, pageUnder } from "#codebase/tcmts/cli/web";
import assert from "node:assert/strict";

export const testPageUnderABase = () => {
  assert.equal(normalBase(undefined), "");
  assert.equal(normalBase("/"), "");
  assert.equal(normalBase("examples/notes/"), "/examples/notes");
  assert.throws(() => normalBase("/a/../b"));
  assert.throws(() => normalBase("/a b"));
  const page =
    '<html><head><script type="importmap">{"imports":{"x":"/_app/assets/x.js"}}</script></head><body><script type="module" src="/_app/assets/index.js"></script></body></html>';
  assert.equal(pageUnder(page, ""), page);
  const under = pageUnder(page, "/examples/notes");
  assert.match(under, /"\/examples\/notes\/_app\/assets\/x\.js"/);
  assert.match(under, /src="\/examples\/notes\/_app\/assets\/index\.js"/);
  assert.match(under, /<head>\n<script>var __TCM_BASE__ = "\/examples\/notes";<\/script>/);
  assert.doesNotMatch(under, /"\/_app\//);
}

uses