92 lines · 2.9 KB · TypeScript
RawDownload
import { describe, expect, it } from "@effect/vitest"; import {  apiBaseUrlForServerOrigin,  getExecutorServerAuthorizationHeader,  normalizeExecutorServerConnection,  normalizeExecutorServerOrigin,  originFromApiBaseUrl,  parseExecutorLocalServerManifest,  serializeExecutorLocalServerManifest,} from "./server-connection"; describe("Executor server connection", () => {  it("normalizes server origins and API base URLs", () => {    expect(normalizeExecutorServerOrigin("localhost:4788/")).toBe("http://localhost:4788");    expect(normalizeExecutorServerOrigin("http://localhost:4788/api")).toBe(      "http://localhost:4788",    );    expect(apiBaseUrlForServerOrigin("http://localhost:4788")).toBe("http://localhost:4788/api");    expect(originFromApiBaseUrl("http://localhost:4788/api")).toBe("http://localhost:4788");  });   it("builds a stable connection from an explicit server origin", () => {    const connection = normalizeExecutorServerConnection({      origin: "https://executor.example",      displayName: "Remote Executor",    });     expect(connection).toMatchObject({      kind: "http",      key: "http:https://executor.example",      origin: "https://executor.example",      apiBaseUrl: "https://executor.example/api",      displayName: "Remote Executor",    });  });   it("builds authorization headers from server auth", () => {    expect(      getExecutorServerAuthorizationHeader(        normalizeExecutorServerConnection({          origin: "http://127.0.0.1:4789",          auth: {            kind: "basic",            username: "executor",            password: "secret",          },        }),      ),    ).toBe("Basic ZXhlY3V0b3I6c2VjcmV0");     expect(      getExecutorServerAuthorizationHeader(        normalizeExecutorServerConnection({          origin: "https://executor.example",          auth: {            kind: "bearer",            token: "remote-token",          },        }),      ),    ).toBe("Bearer remote-token");  });   it("round-trips local server owner manifests", () => {    const manifest = {      version: 1 as const,      kind: "desktop-sidecar" as const,      pid: 1234,      startedAt: "2026-05-28T00:00:00.000Z",      dataDir: "/Users/rhys/.executor",      scopeDir: "/Users/rhys/.executor",      connection: normalizeExecutorServerConnection({        kind: "desktop-sidecar",        key: "desktop-sidecar",        origin: "http://127.0.0.1:4789",        auth: { kind: "basic", username: "executor", password: "secret" },      }),      owner: {        client: "desktop" as const,        version: "1.2.3",        executablePath: "/Applications/Executor.app/Contents/MacOS/Executor",      },    };     expect(      parseExecutorLocalServerManifest(serializeExecutorLocalServerManifest(manifest)),    ).toEqual(manifest);    expect(parseExecutorLocalServerManifest("{")).toBeNull();    expect(parseExecutorLocalServerManifest(JSON.stringify({ ...manifest, pid: -1 }))).toBeNull();  });});