test/scripts/line-counts.test.ts
Rama main · réplica de lectura del repositorio original.
import { expect } from "@std/expect";
import { describe, it as test } from "@std/testing/bdd";
import { printLineCounts } from "#scripts/line-counts-lib.ts";
import { tempDir } from "#test-utils/files.ts";
describe("line-counts", () => {
test("prints recursive line counts grouped by extension", async () => {
using dir = tempDir();
const root = dir.path;
await Deno.mkdir(`${root}/nested`);
await Deno.writeTextFile(`${root}/main.ts`, "one\nunterminated");
await Deno.writeTextFile(`${root}/nested/extra.ts`, "one\ntwo\n");
await Deno.writeTextFile(`${root}/nested/client.js`, "one\n");
await Deno.writeTextFile(`${root}/nested/view.tsx`, "one\n");
await Deno.writeTextFile(`${root}/nested/grunt`, "one\ntwo\nthree");
const output: string[] = [];
await printLineCounts([root], (line) => output.push(line));
expect(output).toEqual([
[
"extension files lines",
".ts 2 3",
"[no extension] 1 2",
".js 1 1",
".tsx 1 1",
"TOTAL 5 7",
].join("\n"),
]);
});
});