Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 44 additions & 2 deletions packages/cli-kit/src/public/node/environment.test.ts
Original file line number Diff line number Diff line change
@@ -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', () => {
Expand All @@ -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)
})
})
20 changes: 9 additions & 11 deletions packages/cli-kit/src/public/node/environment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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])
}

/**
Expand Down Expand Up @@ -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
}
Loading