diff --git a/src/cli/update-cli.test.ts b/src/cli/update-cli.test.ts index 94ac19033..330d5d292 100644 --- a/src/cli/update-cli.test.ts +++ b/src/cli/update-cli.test.ts @@ -482,6 +482,7 @@ describe("update-cli", () => { force: true, json: undefined, }); + expect(runRestartScript).toHaveBeenCalled(); expect(runDaemonRestart).not.toHaveBeenCalled(); }); @@ -508,6 +509,29 @@ describe("update-cli", () => { expect(runDaemonRestart).toHaveBeenCalled(); }); + it("updateCommand falls back to restart when no detached restart script is available", async () => { + const mockResult: UpdateRunResult = { + status: "ok", + mode: "git", + steps: [], + durationMs: 100, + }; + + vi.mocked(runGatewayUpdate).mockResolvedValue(mockResult); + vi.mocked(runDaemonInstall).mockResolvedValue(undefined); + prepareRestartScript.mockResolvedValue(null); + serviceLoaded.mockResolvedValue(true); + vi.mocked(runDaemonRestart).mockResolvedValue(true); + + await updateCommand({}); + + expect(runDaemonInstall).toHaveBeenCalledWith({ + force: true, + json: undefined, + }); + expect(runDaemonRestart).toHaveBeenCalled(); + }); + it("updateCommand does not refresh service env when --no-restart is set", async () => { vi.mocked(runGatewayUpdate).mockResolvedValue(makeOkUpdateResult()); serviceLoaded.mockResolvedValue(true); diff --git a/src/cli/update-cli/update-command.ts b/src/cli/update-cli/update-command.ts index c47893dd0..469b32b45 100644 --- a/src/cli/update-cli/update-command.ts +++ b/src/cli/update-cli/update-command.ts @@ -403,12 +403,9 @@ async function maybeRestartService(params: { try { let restarted = false; let restartInitiated = false; - let serviceRefreshed = false; if (params.refreshServiceEnv) { try { await runDaemonInstall({ force: true, json: params.opts.json }); - serviceRefreshed = true; - restarted = true; } catch (err) { if (!params.opts.json) { defaultRuntime.log( @@ -419,13 +416,11 @@ async function maybeRestartService(params: { } } } - if (!serviceRefreshed && params.restartScriptPath) { + if (params.restartScriptPath) { await runRestartScript(params.restartScriptPath); restartInitiated = true; } else { - if (!serviceRefreshed) { - restarted = await runDaemonRestart(); - } + restarted = await runDaemonRestart(); } if (!params.opts.json && restarted) {