UNPKG

@orcdkestrator/orcdk-plugin-localstack

Version:
167 lines 6.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("../utils"); describe('LocalStack Utils', () => { describe('expandEnvironmentVariables', () => { const originalEnv = process.env; beforeEach(() => { process.env = { ...originalEnv }; process.env.TEST_VAR = 'test-value'; process.env.LAMBDA_PATH = '/path/to/lambda'; process.env.FUNCTION_PREFIX = 'my-prefix'; process.env.ENV_NAME = 'development'; }); afterEach(() => { process.env = originalEnv; }); it('should expand ${VAR_NAME} style variables', () => { const input = '${TEST_VAR}/subfolder'; const result = (0, utils_1.expandEnvironmentVariables)(input); expect(result).toBe('test-value/subfolder'); }); it('should expand $VAR_NAME style variables', () => { const input = '$TEST_VAR/subfolder'; const result = (0, utils_1.expandEnvironmentVariables)(input); expect(result).toBe('test-value/subfolder'); }); it('should handle multiple variables in one string', () => { const input = '${LAMBDA_PATH}/${FUNCTION_PREFIX}-function'; const result = (0, utils_1.expandEnvironmentVariables)(input); expect(result).toBe('/path/to/lambda/my-prefix-function'); }); it('should handle mixed variable styles', () => { const input = '$LAMBDA_PATH/${FUNCTION_PREFIX}-function'; const result = (0, utils_1.expandEnvironmentVariables)(input); expect(result).toBe('/path/to/lambda/my-prefix-function'); }); it('should leave undefined variables unchanged', () => { const input = '${UNDEFINED_VAR}/path'; const result = (0, utils_1.expandEnvironmentVariables)(input); expect(result).toBe('${UNDEFINED_VAR}/path'); }); it('should handle empty strings', () => { const result = (0, utils_1.expandEnvironmentVariables)(''); expect(result).toBe(''); }); it('should handle null/undefined input', () => { expect((0, utils_1.expandEnvironmentVariables)(null)).toBe(null); expect((0, utils_1.expandEnvironmentVariables)(undefined)).toBe(undefined); }); it('should not expand $VAR_NAME when followed by {', () => { const input = '$TEST_VAR${TEST_VAR}'; const result = (0, utils_1.expandEnvironmentVariables)(input); expect(result).toBe('$TEST_VARtest-value'); }); it('should handle paths with environment variables', () => { const input = './lambdas/${ENV_NAME}/${FUNCTION_PREFIX}-handler'; const result = (0, utils_1.expandEnvironmentVariables)(input); expect(result).toBe('./lambdas/development/my-prefix-handler'); }); }); describe('expandEnvironmentVariablesInObject', () => { const originalEnv = process.env; beforeEach(() => { process.env = { ...originalEnv }; process.env.LAMBDA_PATH = '/path/to/lambda'; process.env.FUNCTION_PREFIX = 'my-prefix'; process.env.HANDLER_NAME = 'handler'; }); afterEach(() => { process.env = originalEnv; }); it('should expand variables in object properties', () => { const input = { functionName: '${FUNCTION_PREFIX}-function', localPath: '${LAMBDA_PATH}/functions', handler: '${HANDLER_NAME}.main' }; const result = (0, utils_1.expandEnvironmentVariablesInObject)(input); expect(result).toEqual({ functionName: 'my-prefix-function', localPath: '/path/to/lambda/functions', handler: 'handler.main' }); }); it('should handle nested objects', () => { const input = { config: { path: '${LAMBDA_PATH}', nested: { name: '${FUNCTION_PREFIX}-nested' } } }; const result = (0, utils_1.expandEnvironmentVariablesInObject)(input); expect(result).toEqual({ config: { path: '/path/to/lambda', nested: { name: 'my-prefix-nested' } } }); }); it('should handle arrays', () => { const input = { paths: [ '${LAMBDA_PATH}/function1', '${LAMBDA_PATH}/function2' ] }; const result = (0, utils_1.expandEnvironmentVariablesInObject)(input); expect(result).toEqual({ paths: [ '/path/to/lambda/function1', '/path/to/lambda/function2' ] }); }); it('should handle arrays of objects', () => { const input = { lambdaPaths: [ { functionName: '${FUNCTION_PREFIX}-1', localPath: '${LAMBDA_PATH}/func1' }, { functionName: '${FUNCTION_PREFIX}-2', localPath: '${LAMBDA_PATH}/func2' } ] }; const result = (0, utils_1.expandEnvironmentVariablesInObject)(input); expect(result).toEqual({ lambdaPaths: [ { functionName: 'my-prefix-1', localPath: '/path/to/lambda/func1' }, { functionName: 'my-prefix-2', localPath: '/path/to/lambda/func2' } ] }); }); it('should preserve non-string values', () => { const input = { enabled: true, count: 42, nullable: null, path: '${LAMBDA_PATH}' }; const result = (0, utils_1.expandEnvironmentVariablesInObject)(input); expect(result).toEqual({ enabled: true, count: 42, nullable: null, path: '/path/to/lambda' }); }); it('should handle null/undefined input', () => { expect((0, utils_1.expandEnvironmentVariablesInObject)(null)).toBe(null); expect((0, utils_1.expandEnvironmentVariablesInObject)(undefined)).toBe(undefined); }); }); }); //# sourceMappingURL=utils.test.js.map