import { describe, expect, it } from "vite-plus/test"; import { classifyHostedHttpsCompatibility, createAdvertisedEndpoint, deriveWsBaseUrl, normalizeHttpBaseUrl, } from "./endpoint.ts"; const coreProvider = { id: "desktop-core", label: "Desktop", kind: "core", isAddon: false, } as const; describe("advertised endpoint helpers", () => { it("normalizes HTTP and WebSocket base URLs", () => { expect(normalizeHttpBaseUrl("https://example.com/path?x=1#hash")).toBe("https://example.com/"); expect(normalizeHttpBaseUrl("wss://example.com/socket")).toBe("https://example.com/"); expect(deriveWsBaseUrl("https://example.com/api")).toBe("wss://example.com/"); expect(deriveWsBaseUrl("http://127.0.0.1:3773")).toBe("ws://127.0.0.1:3773/"); }); it("marks HTTP endpoints as blocked from hosted HTTPS apps", () => { expect(classifyHostedHttpsCompatibility("http://192.168.1.44:3773")).toBe( "mixed-content-blocked", ); expect(classifyHostedHttpsCompatibility("https://desktop.example.com", "compatible")).toBe( "compatible", ); }); it("creates provider-neutral endpoint records", () => { expect( createAdvertisedEndpoint({ id: "lan:http://192.168.1.44:3773", label: "LAN", provider: coreProvider, httpBaseUrl: "http://192.168.1.44:3773", reachability: "lan", source: "desktop-core", isDefault: true, }), ).toEqual({ id: "lan:http://192.168.1.44:3773", label: "LAN", provider: coreProvider, httpBaseUrl: "http://192.168.1.44:3773/", wsBaseUrl: "ws://192.168.1.44:3773/", reachability: "lan", compatibility: { hostedHttpsApp: "mixed-content-blocked", desktopApp: "compatible", }, source: "desktop-core", status: "available", isDefault: true, }); }); });