From aa9ebff39ce2d9002577243f9952819c9d1f85fb Mon Sep 17 00:00:00 2001 From: gonzaloriestra <14979109+gonzaloriestra@users.noreply.github.com> Date: Tue, 28 Jul 2026 00:23:04 +0000 Subject: [PATCH] [Refactor] Extract parseEnvNumber helper in environment.ts --- .../src/public/node/environment.test.ts | 46 ++++++++++++++++++- .../cli-kit/src/public/node/environment.ts | 20 ++++---- 2 files changed, 53 insertions(+), 13 deletions(-) diff --git a/packages/cli-kit/src/public/node/environment.test.ts b/packages/cli-kit/src/public/node/environment.test.ts index 46003786f9c..d69dc6e4baa 100644 --- a/packages/cli-kit/src/public/node/environment.test.ts +++ b/packages/cli-kit/src/public/node/environment.test.ts @@ -1,10 +1,12 @@ -import {getAppAutomationToken} from './environment.js' -import {environmentVariables} from '../../private/node/constants.js' +import {getAppAutomationToken, getBackendPort, maxRequestTimeForNetworkCallsMs} from './environment.js' +import {environmentVariables, systemEnvironmentVariables} from '../../private/node/constants.js' import {describe, expect, test, beforeEach} from 'vitest' beforeEach(() => { delete process.env[environmentVariables.appAutomationToken] delete process.env[environmentVariables.partnersToken] + delete process.env[systemEnvironmentVariables.backendPort] + delete process.env[environmentVariables.maxRequestTimeForNetworkCalls] }) describe('getAppAutomationToken', () => { @@ -31,3 +33,43 @@ describe('getAppAutomationToken', () => { expect(getAppAutomationToken()).toBeUndefined() }) }) + +describe('getBackendPort', () => { + test('returns parsed port when set to a valid number', () => { + process.env[systemEnvironmentVariables.backendPort] = '8080' + + expect(getBackendPort()).toBe(8080) + }) + + test('returns undefined when set to an invalid number', () => { + process.env[systemEnvironmentVariables.backendPort] = 'invalid-port' + + expect(getBackendPort()).toBeUndefined() + }) + + test('returns undefined when not set', () => { + expect(getBackendPort()).toBeUndefined() + }) +}) + +describe('maxRequestTimeForNetworkCallsMs', () => { + test('returns parsed max request time when set to a valid number', () => { + const env = { + [environmentVariables.maxRequestTimeForNetworkCalls]: '5000', + } + + expect(maxRequestTimeForNetworkCallsMs(env)).toBe(5000) + }) + + test('returns default 30 seconds when set to an invalid number', () => { + const env = { + [environmentVariables.maxRequestTimeForNetworkCalls]: 'not-a-number', + } + + expect(maxRequestTimeForNetworkCallsMs(env)).toBe(30000) + }) + + test('returns default 30 seconds when not set', () => { + expect(maxRequestTimeForNetworkCallsMs({})).toBe(30000) + }) +}) diff --git a/packages/cli-kit/src/public/node/environment.ts b/packages/cli-kit/src/public/node/environment.ts index a0f2254069d..aa7b86e1502 100644 --- a/packages/cli-kit/src/public/node/environment.ts +++ b/packages/cli-kit/src/public/node/environment.ts @@ -37,17 +37,20 @@ export function getOrganization(): string | undefined { return getEnvironmentVariables()[environmentVariables.organization] } +function parseEnvNumber(value: string | undefined): number | undefined { + if (value && !isNaN(Number(value))) { + return Number(value) + } + return undefined +} + /** * Return the backend port value. * * @returns The port as a number. Undefined otherwise. */ export function getBackendPort(): number | undefined { - const backendPort = getEnvironmentVariables()[systemEnvironmentVariables.backendPort] - if (backendPort && !isNaN(Number(backendPort))) { - return Number(backendPort) - } - return undefined + return parseEnvNumber(getEnvironmentVariables()[systemEnvironmentVariables.backendPort]) } /** @@ -99,10 +102,5 @@ export function skipNetworkLevelRetry(environment = getEnvironmentVariables()): * @returns The maximum request time in milliseconds. */ export function maxRequestTimeForNetworkCallsMs(environment = getEnvironmentVariables()): number { - const maxRequestTime = environment[environmentVariables.maxRequestTimeForNetworkCalls] - if (maxRequestTime && !isNaN(Number(maxRequestTime))) { - return Number(maxRequestTime) - } - // 30 seconds is the default - return 30 * 1000 + return parseEnvNumber(environment[environmentVariables.maxRequestTimeForNetworkCalls]) ?? 30 * 1000 }