mirror of https://github.com/garrytan/gstack.git
40 lines
1.8 KiB
TypeScript
40 lines
1.8 KiB
TypeScript
import { describe, test, expect } from "bun:test";
|
|
import { buildRestartEnv } from "../src/cli";
|
|
|
|
// #1781: an auto-restart triggered by a plain command (no --headed flag) must
|
|
// NOT silently downgrade a headed session to headless. buildRestartEnv reapplies
|
|
// headed/proxy/configHash from this invocation OR the persisted server state.
|
|
describe("buildRestartEnv (#1781 headed persistence)", () => {
|
|
const headedState = { pid: 1, port: 9, token: "t", startedAt: "", serverPath: "", mode: "headed" as const };
|
|
const launchedState = { pid: 1, port: 9, token: "t", startedAt: "", serverPath: "", mode: "launched" as const };
|
|
|
|
test("headed flag on this invocation → BROWSE_HEADED=1", () => {
|
|
expect(buildRestartEnv({ headed: true } as any, null).BROWSE_HEADED).toBe("1");
|
|
});
|
|
|
|
test("plain command + persisted headed state → still BROWSE_HEADED=1 (the regression)", () => {
|
|
const env = buildRestartEnv({} as any, headedState as any);
|
|
expect(env.BROWSE_HEADED).toBe("1");
|
|
});
|
|
|
|
test("plain command + headless state → no BROWSE_HEADED (no spurious headed)", () => {
|
|
const env = buildRestartEnv({} as any, launchedState as any);
|
|
expect(env.BROWSE_HEADED).toBeUndefined();
|
|
});
|
|
|
|
test("nothing set → empty env", () => {
|
|
expect(buildRestartEnv(null, null)).toEqual({});
|
|
});
|
|
|
|
test("proxy + configHash reapplied from flags", () => {
|
|
const env = buildRestartEnv({ proxyUrl: "socks5://x", configHash: "abc" } as any, null);
|
|
expect(env.BROWSE_PROXY_URL).toBe("socks5://x");
|
|
expect(env.BROWSE_CONFIG_HASH).toBe("abc");
|
|
});
|
|
|
|
test("configHash falls back to persisted state", () => {
|
|
const env = buildRestartEnv({} as any, { ...launchedState, configHash: "fromstate" } as any);
|
|
expect(env.BROWSE_CONFIG_HASH).toBe("fromstate");
|
|
});
|
|
});
|