

























@@ -68,6 +68,8 @@ describe("gateway-watch tmux wrapper", () => {
6868const spawnSync = vi
6969.fn()
7070.mockReturnValueOnce({ status: 1, stdout: "", stderr: "" })
71+.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
72+.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
7173.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" });
72747375const code = runGatewayWatchTmuxMain({
@@ -101,10 +103,38 @@ describe("gateway-watch tmux wrapper", () => {
101103],
102104expect.objectContaining({ encoding: "utf8" }),
103105);
106+expect(spawnSync).toHaveBeenNthCalledWith(
107+3,
108+"tmux",
109+[
110+"set-option",
111+"-q",
112+"-t",
113+"openclaw-gateway-watch-main",
114+"@openclaw.gateway_watch.cwd",
115+"/repo",
116+],
117+expect.objectContaining({ encoding: "utf8" }),
118+);
119+expect(spawnSync).toHaveBeenNthCalledWith(
120+4,
121+"tmux",
122+[
123+"set-environment",
124+"-t",
125+"openclaw-gateway-watch-main",
126+"OPENCLAW_GATEWAY_WATCH_CWD",
127+"/repo",
128+],
129+expect.objectContaining({ encoding: "utf8" }),
130+);
104131expect(stderr.chunks.join("")).toContain(
105132"gateway:watch started in tmux session openclaw-gateway-watch-main",
106133);
107134expect(stdout.chunks.join("")).toContain("tmux attach -t openclaw-gateway-watch-main");
135+expect(stdout.chunks.join("")).toContain(
136+"tmux show-options -v -t openclaw-gateway-watch-main @openclaw.gateway_watch.cwd",
137+);
108138});
109139110140it("auto-attaches in an interactive terminal after creating a session", () => {
@@ -114,6 +144,8 @@ describe("gateway-watch tmux wrapper", () => {
114144.fn()
115145.mockReturnValueOnce({ status: 1, stdout: "", stderr: "" })
116146.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
147+.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
148+.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
117149.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" });
118150119151const code = runGatewayWatchTmuxMain({
@@ -130,7 +162,7 @@ describe("gateway-watch tmux wrapper", () => {
130162131163expect(code).toBe(0);
132164expect(spawnSync).toHaveBeenNthCalledWith(
133-3,
165+5,
134166"tmux",
135167["attach-session", "-t", "openclaw-gateway-watch-main"],
136168expect.objectContaining({ stdio: "inherit" }),
@@ -145,6 +177,8 @@ describe("gateway-watch tmux wrapper", () => {
145177.fn()
146178.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
147179.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
180+.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
181+.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
148182.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" });
149183150184const code = runGatewayWatchTmuxMain({
@@ -161,7 +195,7 @@ describe("gateway-watch tmux wrapper", () => {
161195162196expect(code).toBe(0);
163197expect(spawnSync).toHaveBeenNthCalledWith(
164-3,
198+5,
165199"tmux",
166200["switch-client", "-t", "openclaw-gateway-watch-main"],
167201expect.objectContaining({ stdio: "inherit" }),
@@ -174,6 +208,8 @@ describe("gateway-watch tmux wrapper", () => {
174208const spawnSync = vi
175209.fn()
176210.mockReturnValueOnce({ status: 1, stdout: "", stderr: "" })
211+.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
212+.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
177213.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" });
178214179215const code = runGatewayWatchTmuxMain({
@@ -189,7 +225,7 @@ describe("gateway-watch tmux wrapper", () => {
189225});
190226191227expect(code).toBe(0);
192-expect(spawnSync).toHaveBeenCalledTimes(2);
228+expect(spawnSync).toHaveBeenCalledTimes(4);
193229expect(stdout.chunks.join("")).toContain("tmux attach -t openclaw-gateway-watch-main");
194230});
195231@@ -199,6 +235,8 @@ describe("gateway-watch tmux wrapper", () => {
199235const spawnSync = vi
200236.fn()
201237.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
238+.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
239+.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
202240.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" });
203241204242const code = runGatewayWatchTmuxMain({
@@ -239,6 +277,8 @@ describe("gateway-watch tmux wrapper", () => {
239277.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
240278.mockReturnValueOnce({ status: 1, stdout: "", stderr: "can't find window: 0" })
241279.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
280+.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
281+.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" })
242282.mockReturnValueOnce({ status: 0, stdout: "", stderr: "" });
243283244284const code = runGatewayWatchTmuxMain({
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。