History

Support yes/no env aliases in perf toggle parser

Cursor Agent committed 8 months ago

Commit 1cb08a21 parent c0f80772 files · +37 −6Browse files

Unified · Split

2 files
  1. apps/desktop/src/perfConfig.test.ts +24 −0
  2. apps/desktop/src/perfConfig.ts +13 −6
apps/desktop/src/perfConfig.test.ts+24−0
@@ -36,6 +36,18 @@ describe("shouldRunTerminalPerfInteractions", () => { · 35 unmodified lines
36 CI: "true",36 CI: "true",
37 }),37 }),
38 ).toBe(true);38 ).toBe(true);
39 expect(
40 shouldRunTerminalPerfInteractions({
41 T3CODE_DESKTOP_PERF_RUN_TERMINAL: " yes ",
42 CI: "true",
43 }),
44 ).toBe(true);
45 expect(
46 shouldRunTerminalPerfInteractions({
47 T3CODE_DESKTOP_PERF_RUN_TERMINAL: "ON",
48 CI: "true",
49 }),
50 ).toBe(true);
39 });51 });
40 52
41 it("supports explicit false values", () => {53 it("supports explicit false values", () => {
@@ -57,6 +69,18 @@ describe("shouldRunTerminalPerfInteractions", () => { · 15 unmodified lines
57 CI: "false",69 CI: "false",
58 }),70 }),
59 ).toBe(false);71 ).toBe(false);
72 expect(
73 shouldRunTerminalPerfInteractions({
74 T3CODE_DESKTOP_PERF_RUN_TERMINAL: " no ",
75 CI: "false",
76 }),
77 ).toBe(false);
78 expect(
79 shouldRunTerminalPerfInteractions({
80 T3CODE_DESKTOP_PERF_RUN_TERMINAL: "OFF",
81 CI: "false",
82 }),
83 ).toBe(false);
60 expect(84 expect(
61 shouldRunTerminalPerfInteractions({85 shouldRunTerminalPerfInteractions({
62 T3CODE_DESKTOP_PERF_RUN_TERMINAL: "0",86 T3CODE_DESKTOP_PERF_RUN_TERMINAL: "0",
apps/desktop/src/perfConfig.ts+13−6
@@ -3,11 +3,19 @@ type PerfToggleEnv = { · 2 unmodified lines
3 CI?: string | undefined;3 CI?: string | undefined;
4};4};
5 5
6const CI_TRUE_VALUES = new Set(["1", "true", "yes", "on"]);6const TRUE_VALUES = new Set(["1", "true", "yes", "on"]);
7const FALSE_VALUES = new Set(["0", "false", "no", "off"]);
7 8
8function isCiEnvironment(value: string | undefined): boolean {9function parseBooleanLike(value: string | undefined): boolean | null {
9 const normalized = value?.trim().toLowerCase();10 const normalized = value?.trim().toLowerCase();
10 return normalized ? CI_TRUE_VALUES.has(normalized) : false;11 if (!normalized) return null;
12 if (TRUE_VALUES.has(normalized)) return true;
13 if (FALSE_VALUES.has(normalized)) return false;
14 return null;
15}
16
17function isCiEnvironment(value: string | undefined): boolean {
18 return parseBooleanLike(value) === true;
11}19}
12 20
13/**21/**
@@ -18,8 +26,7 @@ function isCiEnvironment(value: string | undefined): boolean { · 4 unmodified lines
18 * flaky PTY-dependent interactions in ephemeral Linux runners.26 * flaky PTY-dependent interactions in ephemeral Linux runners.
19 */27 */
20export function shouldRunTerminalPerfInteractions(env: PerfToggleEnv): boolean {28export function shouldRunTerminalPerfInteractions(env: PerfToggleEnv): boolean {
21 const raw = env.T3CODE_DESKTOP_PERF_RUN_TERMINAL?.trim().toLowerCase();29 const toggleOverride = parseBooleanLike(env.T3CODE_DESKTOP_PERF_RUN_TERMINAL);
22 if (raw === "1" || raw === "true") return true;30 if (toggleOverride !== null) return toggleOverride;
23 if (raw === "0" || raw === "false") return false;
24 return !isCiEnvironment(env.CI);31 return !isCiEnvironment(env.CI);
25}32}