test.scripts/core/analyzers/closure.fixture.ts

test.scripts/core/analyzers/closure.fixture.ts is a file in Codebase Testing. 29 lines of code and 6 definitions.

import { mkdirSync, mkdtempSync } from "node:fs";
import { join } from "node:path";
import { tmpdir } from "node:os";
import { writeVerbatim } from "@govlab/canonical-write";

export const ZONE = "zone";

const MANIFEST = { exports: { "./*": "./*" }, imports: { [`#${ZONE}/*`]: `./${ZONE}/*.ts` }, name: "@fixture/member" };

const CALLER = [
    `import { A_ID } from "#${ZONE}/a.ids";`,
    "registerThing({ id: A_ID });",
    "getThing(A_ID);",
    "emitEvent(A_ID);",
    "subscribeEvent({ event: A_ID });",
    "export interface Shape { name: string; age?: number }",
    "export function run(): void {}",
    `const label = (await import("#${ZONE}/b.strings")).LABEL;`,
    "",
].join("\n");

export const memberFixture = function memberFixture(): string {
    const root = mkdtempSync(join(tmpdir(), "closure-member-"));
    const zone = join(root, ZONE);
    mkdirSync(zone);
    writeVerbatim(join(root, "package.json"), JSON.stringify(MANIFEST));
    writeVerbatim(join(zone, "a.ids.ts"), 'export const A_ID = "a";\n');
    writeVerbatim(join(zone, "b.strings.ts"), 'export const LABEL = "label";\n');
    writeVerbatim(join(zone, "c.ts"), CALLER);
    writeVerbatim(join(zone, "index.ts"), 'export default import.meta.glob("./*.ids.ts");\n');
    writeVerbatim(join(zone, "c.test.ts"), "export const skipped = 1;\n");
    return root;
};