# test.govlab/docs/core/coordinators/output.fixture.ts

> 18 lines of code and 3 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-govlab-docs-core-coordinators-output-fixture-ts
Source text: https://banes-lab.com/source/testing/test.govlab/docs/core/coordinators/output.fixture.ts.txt

Listed in [test.govlab/docs/core/coordinators](https://banes-lab.com/api/source/testing/test.govlab/docs/core/coordinators.md), after [test.govlab/docs/core/coordinators/markdown.coordinator.test.ts](https://banes-lab.com/source/testing/test.govlab/docs/core/coordinators/markdown.coordinator.test.ts.md) and before [test.govlab/docs/core/coordinators/system.coordinator.test.ts](https://banes-lab.com/source/testing/test.govlab/docs/core/coordinators/system.coordinator.test.ts.md).

## Definitions

- `CapturedOutput` (interface_declaration, line 4, exported)
- `captureOutput` (lexical_declaration, line 9, exported)
- `captured` (lexical_declaration, line 10, exported)

## Contained in

- [test.govlab/docs/core/coordinators](https://banes-lab.com/anatomy/testing/folder-testing-test-govlab-docs-core-coordinators.md)

## Source

```typescript
import process from "node:process";
import { vi } from "vitest";

export interface CapturedOutput {
    err: string[];
    out: string[];
}

export const captureOutput = function captureOutput(): CapturedOutput {
    const captured: CapturedOutput = { err: [], out: [] };
    vi.spyOn(process.stdout, "write").mockImplementation((chunk: Uint8Array | string) => {
        captured.out.push(String(chunk));
        return true;
    });
    vi.spyOn(process.stderr, "write").mockImplementation((chunk: Uint8Array | string) => {
        captured.err.push(String(chunk));
        return true;
    });
    return captured;
};
```
