58 lines · 2.0 KB · TypeScript
RawDownload
import { describe, expect, it } from "@effect/vitest";import { EnvironmentId } from "@t3tools/contracts";import * as Effect from "effect/Effect"; import {  loadPreviewWebviewConfig,  PreviewWebviewBridgeUnavailableError,  PreviewWebviewConfigLoadError,} from "./previewWebviewConfigState"; const environmentId = EnvironmentId.make("environment-1"); describe("loadPreviewWebviewConfig", () => {  it.effect("reports a structurally distinct missing-bridge failure", () =>    Effect.gen(function* () {      const error = yield* loadPreviewWebviewConfig(environmentId, null).pipe(Effect.flip);       expect(error).toBeInstanceOf(PreviewWebviewBridgeUnavailableError);      expect(error.environmentId).toBe(environmentId);      expect(error.message).toContain(environmentId);      expect("cause" in error).toBe(false);    }),  );   it.effect("preserves the bridge rejection as the load failure cause", () =>    Effect.gen(function* () {      const cause = new Error("ipc unavailable");      const error = yield* loadPreviewWebviewConfig(environmentId, {        getPreviewConfig: () => Promise.reject(cause),      }).pipe(Effect.flip);       expect(error).toBeInstanceOf(PreviewWebviewConfigLoadError);      expect(error.environmentId).toBe(environmentId);      expect(error.cause).toBe(cause);      expect(error.message).not.toContain(cause.message);    }),  );   it.effect("forwards the environment id to the bridge", () =>    Effect.gen(function* () {      let requestedEnvironmentId: EnvironmentId | null = null;      const config = {        partition: "persist:test-preview",        webPreferences: "sandbox=yes",        preloadUrl: null,      };      const result = yield* loadPreviewWebviewConfig(environmentId, {        getPreviewConfig: (input) => {          requestedEnvironmentId = input;          return Promise.resolve(config);        },      });       expect(requestedEnvironmentId).toBe(environmentId);      expect(result).toEqual(config);    }),  );});

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