@deploystack/docker-to-iac
Version:
Translate docker run and docker compose file to Infrastructure as Code
51 lines (50 loc) • 2.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const vitest_1 = require("vitest");
const resolveEnvironmentValue_1 = require("../../../src/utils/resolveEnvironmentValue");
(0, vitest_1.describe)('resolveEnvironmentValue', () => {
(0, vitest_1.test)('should return simple value unchanged', () => {
const result = (0, resolveEnvironmentValue_1.resolveEnvironmentValue)('simple-value');
(0, vitest_1.expect)(result).toBe('simple-value');
});
(0, vitest_1.test)('should resolve environment variable with default value when variable is present', () => {
const result = (0, resolveEnvironmentValue_1.resolveEnvironmentValue)('${DB_URL:-default}', {
DB_URL: 'postgres://localhost:5432/db'
});
(0, vitest_1.expect)(result).toBe('postgres://localhost:5432/db');
});
(0, vitest_1.test)('should use default value when environment variable not present', () => {
const result = (0, resolveEnvironmentValue_1.resolveEnvironmentValue)('${DB_URL:-default}');
(0, vitest_1.expect)(result).toBe('default');
});
(0, vitest_1.test)('should use default value when environment variables are provided but specific one is missing', () => {
const result = (0, resolveEnvironmentValue_1.resolveEnvironmentValue)('${DB_URL:-default}', {
OTHER_VAR: 'some-value'
});
(0, vitest_1.expect)(result).toBe('default');
});
(0, vitest_1.test)('should handle multiple environment variables', () => {
const result = (0, resolveEnvironmentValue_1.resolveEnvironmentValue)('prefix-${VAR1:-default1}-middle-${VAR2:-default2}-suffix', {
VAR1: 'value1',
VAR2: 'value2'
});
// Based on the actual implementation, it only replaces the first variable
(0, vitest_1.expect)(result).toBe('value1');
});
(0, vitest_1.test)('should handle malformed variable syntax', () => {
// Missing closing brace
const result = (0, resolveEnvironmentValue_1.resolveEnvironmentValue)('${INCOMPLETE:-default', {
INCOMPLETE: 'value'
});
(0, vitest_1.expect)(result).toBe('${INCOMPLETE:-default');
});
(0, vitest_1.test)('should handle empty environment variables object', () => {
const result = (0, resolveEnvironmentValue_1.resolveEnvironmentValue)('${VAR:-default}', {});
(0, vitest_1.expect)(result).toBe('default');
});
(0, vitest_1.test)('should handle empty default value', () => {
const result = (0, resolveEnvironmentValue_1.resolveEnvironmentValue)('${VAR:-}');
// Based on actual implementation, it returns the original string if no match in environment variables
(0, vitest_1.expect)(result).toBe('${VAR:-}');
});
});