源码快照 @ 2026-09-02 (source-only, 剔除非源码素材)
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
|
||||
import { resolveWorkspaceEndpoint, workspaceServerId } from "../src/app/lib/workspace-endpoint";
|
||||
|
||||
describe("workspace endpoint resolution", () => {
|
||||
test("local workspaces use the local server and local workspace id", () => {
|
||||
const endpoint = resolveWorkspaceEndpoint({
|
||||
id: "ws_local",
|
||||
name: "Local",
|
||||
path: "/tmp/ws-local",
|
||||
preset: "minimal",
|
||||
workspaceType: "local",
|
||||
}, {
|
||||
baseUrl: "http://127.0.0.1:4096",
|
||||
token: "local-token",
|
||||
});
|
||||
|
||||
expect(endpoint?.workspaceId).toBe("ws_local");
|
||||
expect(endpoint?.baseUrl).toBe("http://127.0.0.1:4096");
|
||||
expect(endpoint?.isRemote).toBe(false);
|
||||
expect(endpoint?.mountedBaseUrl).toBe("http://127.0.0.1:4096/workspace/ws_local");
|
||||
expect(endpoint?.opencodeBaseUrl).toBe("http://127.0.0.1:4096/workspace/ws_local/opencode");
|
||||
expect(endpoint?.token).toBe("local-token");
|
||||
});
|
||||
|
||||
test("remote workspaces use the owning worker URL and server-side workspace id", () => {
|
||||
const endpoint = resolveWorkspaceEndpoint({
|
||||
id: "rem_ui-workspace-b",
|
||||
name: "Remote",
|
||||
path: "/workspace/server-workspace-b",
|
||||
preset: "minimal",
|
||||
workspaceType: "remote",
|
||||
baseUrl: "https://worker.example.test",
|
||||
openworkToken: "remote-token",
|
||||
openworkWorkspaceId: "server-workspace-b",
|
||||
}, {
|
||||
baseUrl: "http://127.0.0.1:4096",
|
||||
token: "local-token",
|
||||
});
|
||||
|
||||
expect(endpoint?.workspaceId).toBe("server-workspace-b");
|
||||
expect(endpoint?.baseUrl).toBe("https://worker.example.test");
|
||||
expect(endpoint?.isRemote).toBe(true);
|
||||
expect(endpoint?.mountedBaseUrl).toBe("https://worker.example.test/workspace/server-workspace-b");
|
||||
expect(endpoint?.opencodeBaseUrl).toBe("https://worker.example.test/workspace/server-workspace-b/opencode");
|
||||
expect(endpoint?.token).toBe("remote-token");
|
||||
});
|
||||
|
||||
test("remote workspace ids fall back to stripping rem_ when no explicit server id exists", () => {
|
||||
expect(workspaceServerId({
|
||||
id: "rem_workspace-c",
|
||||
name: "Remote fallback",
|
||||
path: "/workspace/workspace-c",
|
||||
preset: "minimal",
|
||||
workspaceType: "remote",
|
||||
baseUrl: "https://worker.example.test",
|
||||
})).toBe("workspace-c");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user