testCodeBlocksTakeTheFirstWordOfTheirInfoString

tcmts.share.test.testCodeBlocksTakeTheFirstWordOfTheirInfoString · #hzhxjagl · term

A code block is highlighted by its info string's first word: ```ts import.meta.vitest (as Effect's docs fence their examples) is TypeScript; a language it doesn't highlight is left as text.

import type { Codebase } from "#codebase/tcmts/cli/codebase";
import { markdownHtml } from "#codebase/tcmts/share";
import assert from "node:assert/strict";

export const testCodeBlocksTakeTheFirstWordOfTheirInfoString = () => {
  const cb = { store: { pathsOf: () => [] } } as unknown as Codebase;
  const block = (info: string) => markdownHtml(cb, `\`\`\`${info}\nconst x = 1\n\`\`\`\n`);
  for (const info of ["ts", "ts import.meta.vitest", "tsx title=a.tsx", "js"])
    assert.match(block(info), /<pre class="code">.*<span/s, info);
  for (const info of ["", "sh", "text ts"]) assert.doesNotMatch(block(info), /<span/, info);
}

uses