import { BearerConnectionTarget, PrimaryConnectionTarget, RelayConnectionTarget, SshConnectionTarget, } from "@t3tools/client-runtime/connection"; import { EnvironmentId } from "@t3tools/contracts"; import { describe, expect, it } from "vite-plus/test"; import { isOnboardingRelayEnvironment, resolveOnboardingTargetEnvironment, } from "./targetEnvironment.logic"; const primaryEnvironment = { environmentId: EnvironmentId.make("primary"), connection: { phase: "connected" }, entry: { target: new PrimaryConnectionTarget({ environmentId: EnvironmentId.make("primary"), label: "This computer", httpBaseUrl: "http://127.0.0.1:3773", wsBaseUrl: "ws://127.0.0.1:3773", }), }, label: "This computer", } as const; const olderRelay = { environmentId: EnvironmentId.make("older-remote"), connection: { phase: "connected" }, entry: { target: new RelayConnectionTarget({ environmentId: EnvironmentId.make("older-remote"), label: "Older computer", }), }, label: "Older computer", } as const; const newerRelay = { environmentId: EnvironmentId.make("newer-relay"), connection: { phase: "connected" }, entry: { target: new RelayConnectionTarget({ environmentId: EnvironmentId.make("newer-relay"), label: "New computer", }), }, label: "New computer", } as const; const pairedRemote = { environmentId: EnvironmentId.make("paired-remote"), connection: { phase: "connected" }, entry: { target: new BearerConnectionTarget({ environmentId: EnvironmentId.make("paired-remote"), label: "Direct computer", connectionId: "paired-remote", }), }, label: "Direct computer", } as const; const sshEnvironment = { environmentId: EnvironmentId.make("ssh-remote"), connection: { phase: "connected" }, entry: { target: new SshConnectionTarget({ environmentId: EnvironmentId.make("ssh-remote"), label: "SSH computer", connectionId: "ssh-remote", }), }, label: "SSH computer", } as const; const desktopLocalEnvironment = { environmentId: EnvironmentId.make("desktop-local-wsl"), connection: { phase: "connected" }, entry: { target: new BearerConnectionTarget({ environmentId: EnvironmentId.make("desktop-local-wsl"), label: "WSL", connectionId: "local:wsl:Ubuntu", }), }, label: "WSL", } as const; describe("resolveOnboardingTargetEnvironment", () => { it("waits for the exact paired machine instead of using an older connected machine", () => { const pendingPairedRemote = { ...pairedRemote, connection: { phase: "connecting" } }; expect( resolveOnboardingTargetEnvironment({ mode: "direct", environments: [primaryEnvironment, olderRelay, pendingPairedRemote], primaryEnvironment, pairedEnvironmentId: pairedRemote.environmentId, }), ).toBeNull(); }); it("uses the exact paired machine once it connects", () => { expect( resolveOnboardingTargetEnvironment({ mode: "direct", environments: [primaryEnvironment, olderRelay, pairedRemote], primaryEnvironment, pairedEnvironmentId: pairedRemote.environmentId, }), ).toBe(pairedRemote); }); it("waits for a newly paired machine that has not appeared in the catalog", () => { expect( resolveOnboardingTargetEnvironment({ mode: "direct", environments: [primaryEnvironment, olderRelay], primaryEnvironment, pairedEnvironmentId: pairedRemote.environmentId, }), ).toBeNull(); }); it("uses the primary machine for local onboarding", () => { expect( resolveOnboardingTargetEnvironment({ mode: "local", environments: [primaryEnvironment, olderRelay], primaryEnvironment, pairedEnvironmentId: null, }), ).toBe(primaryEnvironment); }); it("does not substitute a remote machine when the local primary is offline", () => { const offlinePrimary = { ...primaryEnvironment, connection: { phase: "disconnected" } }; expect( resolveOnboardingTargetEnvironment({ mode: "local", environments: [offlinePrimary, olderRelay], primaryEnvironment: offlinePrimary, pairedEnvironmentId: null, }), ).toBeNull(); }); it("uses the newest connected remote when no exact machine was selected", () => { expect( resolveOnboardingTargetEnvironment({ mode: "connect", environments: [primaryEnvironment, olderRelay, newerRelay], primaryEnvironment, pairedEnvironmentId: null, }), ).toBe(newerRelay); }); it("ignores direct, SSH, and desktop-managed connections in Connect mode", () => { expect( resolveOnboardingTargetEnvironment({ mode: "connect", environments: [ primaryEnvironment, olderRelay, pairedRemote, sshEnvironment, desktopLocalEnvironment, ], primaryEnvironment, pairedEnvironmentId: null, }), ).toBe(olderRelay); }); it("uses the primary computer when no relay connection exists", () => { expect( resolveOnboardingTargetEnvironment({ mode: "connect", environments: [primaryEnvironment, pairedRemote, sshEnvironment, desktopLocalEnvironment], primaryEnvironment, pairedEnvironmentId: null, }), ).toBe(primaryEnvironment); }); it("falls back to the connected primary when no remote is available", () => { expect( resolveOnboardingTargetEnvironment({ mode: "connect", environments: [primaryEnvironment], primaryEnvironment, pairedEnvironmentId: null, }), ).toBe(primaryEnvironment); }); }); describe("isOnboardingRelayEnvironment", () => { it("includes only T3 Connect relay targets", () => { expect( [olderRelay, pairedRemote, sshEnvironment, desktopLocalEnvironment].filter( isOnboardingRelayEnvironment, ), ).toEqual([olderRelay]); }); });