summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/context/server.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/app/src/context/server.test.ts')
-rw-r--r--packages/app/src/context/server.test.ts53
1 files changed, 53 insertions, 0 deletions
diff --git a/packages/app/src/context/server.test.ts b/packages/app/src/context/server.test.ts
new file mode 100644
index 000000000..1fa35247c
--- /dev/null
+++ b/packages/app/src/context/server.test.ts
@@ -0,0 +1,53 @@
+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()
+ })
+})