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

> 29 lines of code and 6 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-scripts-core-analyzers-closure-fixture-ts
Source text: https://banes-lab.com/source/testing/test.scripts/core/analyzers/closure.fixture.ts.txt

Listed in [test.scripts/core/analyzers](https://banes-lab.com/api/source/testing/test.scripts/core/analyzers.md), after [test.scripts/core/analyzers/closure.analyzer.test.ts](https://banes-lab.com/source/testing/test.scripts/core/analyzers/closure.analyzer.test.ts.md) and before [test.scripts/core/analyzers/credential.analyzer.test.ts](https://banes-lab.com/source/testing/test.scripts/core/analyzers/credential.analyzer.test.ts.md).

## Definitions

- `ZONE` (lexical_declaration, line 6, exported)
- `MANIFEST` (lexical_declaration, line 8)
- `CALLER` (lexical_declaration, line 10)
- `memberFixture` (lexical_declaration, line 22, exported)
- `root` (lexical_declaration, line 23, exported)
- `zone` (lexical_declaration, line 24, exported)

## Contained in

- [test.scripts/core/analyzers](https://banes-lab.com/anatomy/testing/folder-testing-test-scripts-core-analyzers.md)

## Source

```typescript
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;
};
```
