# test.web/domain/converters/surface.converter.test.ts

> 23 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-web-domain-converters-surface-converter-test-ts
Source text: https://banes-lab.com/source/testing/test.web/domain/converters/surface.converter.test.ts.txt

Listed in [test.web/domain/converters](https://banes-lab.com/api/source/testing/test.web/domain/converters.md), after [test.web/domain/converters/structure.converter.test.ts](https://banes-lab.com/source/testing/test.web/domain/converters/structure.converter.test.ts.md) and before [test.web/domain/converters/tension.converter.test.ts](https://banes-lab.com/source/testing/test.web/domain/converters/tension.converter.test.ts.md).

## Contained in

- [test.web/domain/converters](https://banes-lab.com/anatomy/testing/folder-testing-test-web-domain-converters.md)

## Source

```typescript
import { describe, expect, it } from "vitest";
import { transcriptOf } from "@banes-lab/web/domain/converters/surface.converter.ts";

describe("transcriptOf", () => {
    it("writes each command after the prompt mark, its output below it, and a blank line between frames", () => {
        const transcript = transcriptOf({
            figure: "wait",
            frames: [
                { command: "npm run await -- --agent A", lines: [], output: "WAITING\n  for B\n", surface: "board.md" },
                {
                    command: "npm run await -- --agent B",
                    lines: [],
                    output: "ITEM  B-1 was added.\n",
                    surface: "board.md",
                },
            ],
            inputs: "",
            opening: [],
        });
        expect(transcript).toBe(
            "$ npm run await -- --agent A\nWAITING\n  for B\n\n$ npm run await -- --agent B\nITEM  B-1 was added.",
        );
    });
});
```
