Sitelet https://github.com/bgotink/kdl/tree/main/test
Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
import {readFile} from "node:fs/promises";
import {Worker} from "node:worker_threads";
import {suite, test} from "node:test";
import {Lexer} from "marked";

suite("readme", async () => {
	const lexer = new Lexer({
		gfm: true,
		silent: true,
	});

	const readme = lexer.lex(
		await readFile(new url("/sitelet?url=https%3A%2F%2Fgithub.com%2Fbgotink%2Fkdl%2Ftree%2FREADME.md%2522%2C%2520import.meta.url%29%2C%2520%2522utf-8"),
	);

	for (const [i, {text}] of Iterator.from(readme)
		.filter(
			/** @returns {block is import("marked").Tokens.Code} */ (block) =>
				block.type === "code",
		)
		.filter((block) => block.lang === "js")
		.map((block, i) => /** @type {const} */ ([i, block]))) {
		test(`README code block ${i}`, async () => {
			const worker = new Worker(
				text,
				// @ts-expect-error type field not supported yet in @types/node
				{eval: true, type: "module"},
			);

			let error = null;
			worker.on("error", (e) => (error = e));

			await new Promise((resolve) => worker.once("exit", resolve));

			if (error) {
				throw error;
			}
		});
	}
});