1import { describe, expect, it } from "vitest";2import { peerWebSocketUrl, toDiscoveredPeer } from "./sync-bridge";34describe("sync-bridge helpers", () => {5 const basePeer = {6 deviceId: "p1",7 deviceName: "iPhone",8 host: "192.168.1.10",9 port: 44100,10 x25519PublicKey: "abc",11 pairing: false,12 };1314 it("toDiscoveredPeer carries wsPort and alreadyPaired", () => {15 const peer = toDiscoveredPeer({ ...basePeer, wsPort: 44101 }, true);16 expect(peer).toEqual({17 deviceId: "p1",18 deviceName: "iPhone",19 host: "192.168.1.10",20 port: 44100,21 wsPort: 44101,22 x25519PublicKey: "abc",23 alreadyPaired: true,24 });25 });2627 it("toDiscoveredPeer omits wsPort when not advertised", () => {28 const peer = toDiscoveredPeer(basePeer, false);29 expect(peer.wsPort).toBeUndefined();30 expect(peer.alreadyPaired).toBe(false);31 });3233 it("peerWebSocketUrl builds ws:// URL using wsPort", () => {34 expect(peerWebSocketUrl({ ...basePeer, wsPort: 44101 })).toBe(35 "ws://192.168.1.10:44101/"36 );37 });3839 it("peerWebSocketUrl throws when wsPort is missing", () => {40 expect(() => peerWebSocketUrl(basePeer)).toThrow(41 "peer did not advertise a WebSocket port"42 );43 });44});