import { describe, expect, test } from "bun:test" import { resolveServerList, ServerConnection } from "./server" describe("resolveServerList", () => { test("lets startup auth_token credentials override a persisted same-url server", () => { const list = resolveServerList({ stored: [{ url: "https://server.example.test" }], props: [ { type: "http", authToken: true, http: { url: "https://server.example.test", username: "opencode", password: "secret", }, }, ], }) expect(list).toHaveLength(1) expect(list[0]?.type).toBe("http") expect(list[0]?.http).toEqual({ url: "https://server.example.test", username: "opencode", password: "secret", }) expect(list[0]?.type === "http" ? list[0].authToken : false).toBe(true) expect(ServerConnection.key(list[0]!) as string).toBe("https://server.example.test") }) test("keeps persisted credentials when startup has no auth_token", () => { const list = resolveServerList({ stored: [ { url: "https://server.example.test", username: "opencode", password: "saved", }, ], props: [{ type: "http", http: { url: "https://server.example.test" } }], }) expect(list).toHaveLength(1) expect(list[0]?.type).toBe("http") expect(list[0]?.http).toEqual({ url: "https://server.example.test", username: "opencode", password: "saved", }) expect(list[0]?.type === "http" ? list[0].authToken : true).toBeUndefined() }) })