29 lines · 1.1 KB · TypeScript
RawDownload
import * as Schema from "effect/Schema";import { describe, expect, it } from "vite-plus/test"; import { RelayClientInstallFailedError } from "./relayClient.ts"; const encodeRelayClientInstallFailedError = Schema.encodeSync(RelayClientInstallFailedError);const decodeRelayClientInstallFailedError = Schema.decodeUnknownSync(RelayClientInstallFailedError); describe("RelayClientInstallFailedError", () => {  it("retains its internal cause without serializing it", () => {    const cause = new Error("private download failure");    const error = new RelayClientInstallFailedError({      reason: "download_failed",      cause,    });     const encoded = encodeRelayClientInstallFailedError(error);    const decoded = decodeRelayClientInstallFailedError(encoded);     expect(error.cause).toBe(cause);    expect(error.message).toBe("Relay client installation failed (download_failed).");    expect(encoded).toEqual({      _tag: "RelayClientInstallFailedError",      reason: "download_failed",    });    expect(decoded.cause).toBeUndefined();    expect(decoded.message).toBe("Relay client installation failed (download_failed).");  });});