源码快照 @ 2026-09-02 (source-only, 剔除非源码素材)
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
import { describe, it } from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
|
||||
import {
|
||||
openworkWorkspaceDisplayName,
|
||||
selectOpenworkWorkspaceForConnection,
|
||||
} from "./remote-workspace.mjs";
|
||||
|
||||
describe("selectOpenworkWorkspaceForConnection", () => {
|
||||
it("selects the active worker workspace when no directory is provided", () => {
|
||||
const selected = selectOpenworkWorkspaceForConnection(
|
||||
{
|
||||
activeId: "ws_active",
|
||||
items: [
|
||||
{ id: "ws_first", path: "/workspace/first" },
|
||||
{ id: "ws_active", path: "/workspace/active" },
|
||||
],
|
||||
},
|
||||
null,
|
||||
);
|
||||
|
||||
assert.equal(selected?.id, "ws_active");
|
||||
});
|
||||
|
||||
it("falls back to the first workspace when activeId is missing", () => {
|
||||
const selected = selectOpenworkWorkspaceForConnection(
|
||||
{
|
||||
items: [
|
||||
{ id: "ws_first", path: "/workspace/first" },
|
||||
{ id: "ws_second", path: "/workspace/second" },
|
||||
],
|
||||
},
|
||||
"",
|
||||
);
|
||||
|
||||
assert.equal(selected?.id, "ws_first");
|
||||
});
|
||||
|
||||
it("selects a workspace whose path matches the requested remote directory", () => {
|
||||
const selected = selectOpenworkWorkspaceForConnection(
|
||||
{
|
||||
activeId: "ws_other",
|
||||
items: [
|
||||
{ id: "ws_other", path: "/workspace/other" },
|
||||
{ id: "ws_demo", path: "/home/user/workspaces/demo" },
|
||||
],
|
||||
},
|
||||
"/home/user/workspaces/demo/",
|
||||
);
|
||||
|
||||
assert.equal(selected?.id, "ws_demo");
|
||||
});
|
||||
|
||||
it("selects by opencode directory when workers expose it there", () => {
|
||||
const selected = selectOpenworkWorkspaceForConnection(
|
||||
{
|
||||
items: [
|
||||
{
|
||||
id: "ws_demo",
|
||||
path: "/workspace",
|
||||
opencode: { directory: "/home/user/workspaces/demo" },
|
||||
},
|
||||
],
|
||||
},
|
||||
"/home/user/workspaces/demo",
|
||||
);
|
||||
|
||||
assert.equal(selected?.id, "ws_demo");
|
||||
});
|
||||
|
||||
it("returns null when a requested directory is not present", () => {
|
||||
const selected = selectOpenworkWorkspaceForConnection(
|
||||
{ items: [{ id: "ws_demo", path: "/workspace/demo" }] },
|
||||
"/workspace/missing",
|
||||
);
|
||||
|
||||
assert.equal(selected, null);
|
||||
});
|
||||
|
||||
it("reads legacy workspaces arrays", () => {
|
||||
const selected = selectOpenworkWorkspaceForConnection(
|
||||
{ activeId: "ws_legacy", workspaces: [{ id: "ws_legacy", path: "/workspace" }] },
|
||||
null,
|
||||
);
|
||||
|
||||
assert.equal(selected?.id, "ws_legacy");
|
||||
});
|
||||
});
|
||||
|
||||
describe("openworkWorkspaceDisplayName", () => {
|
||||
it("prefers display fields before id", () => {
|
||||
assert.equal(
|
||||
openworkWorkspaceDisplayName({
|
||||
id: "ws_demo",
|
||||
name: "Worker project",
|
||||
displayName: "Demo",
|
||||
}),
|
||||
"Demo",
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user