34 lines · 1.2 KB · TypeScript
RawDownload
import { assert, describe, it } from "@effect/vitest";import * as Schema from "effect/Schema"; import * as PtyAdapter from "./PtyAdapter.ts"; const isPtySpawnError = Schema.is(PtyAdapter.PtySpawnError); describe("PtySpawnError", () => {  it("derives messages from structural context while preserving the full cause chain", () => {    const spawnCause = new Error("spawn /bin/zsh ENOENT");    const adapterError = new PtyAdapter.PtySpawnError({      adapter: "node-pty",      shell: "/bin/zsh",      cause: spawnCause,    });    const managerError = new PtyAdapter.PtySpawnError({      adapter: "terminal-manager",      attemptedShells: ["/bin/zsh -o nopromptsp", "/bin/bash"],      cause: adapterError,    });     assert(isPtySpawnError(managerError));    assert.strictEqual(      managerError.message,      "Failed to spawn PTY process with terminal-manager. Tried shells: /bin/zsh -o nopromptsp, /bin/bash.",    );    assert.strictEqual(      adapterError.message,      "Failed to spawn PTY process '/bin/zsh' with node-pty.",    );    assert.strictEqual(managerError.cause, adapterError);    assert.strictEqual(adapterError.cause, spawnCause);  });});

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t