Ctrl K
ComunidadGuías…

test/scripts/line-counts.test.ts

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
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"),
    ]);
  });
});