@deploystack/docker-to-iac
Version:
Translate docker run and docker compose file to Infrastructure as Code
98 lines (97 loc) • 4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const vitest_1 = require("vitest");
const detectDatabaseEnvVars_1 = require("../../../src/utils/detectDatabaseEnvVars");
const base_parser_1 = require("../../../src/parsers/base-parser");
(0, vitest_1.describe)('generateDatabaseServiceConnections', () => {
(0, vitest_1.test)('should return empty array when no services are provided', () => {
const config = {
services: {}
};
const result = (0, detectDatabaseEnvVars_1.generateDatabaseServiceConnections)(config);
(0, vitest_1.expect)(result).toEqual([]);
});
(0, vitest_1.test)('should return empty array when there are no database connections to detect', () => {
const config = {
services: {
'web': {
environment: {
'NODE_ENV': 'production',
'PORT': '3000'
}
}
}
};
const result = (0, detectDatabaseEnvVars_1.generateDatabaseServiceConnections)(config);
(0, vitest_1.expect)(result).toEqual([]);
});
(0, vitest_1.test)('should handle service with potential database environment variables', () => {
const config = {
services: {
'web': {
environment: {
'DATABASE_URL': 'postgres://localhost:5432/db',
'REDIS_URL': 'redis://localhost:6379'
}
},
'db': {
image: {
registry_type: base_parser_1.RegistryType.DOCKER_HUB,
repository: 'postgres'
},
environment: {}
},
'cache': {
image: {
registry_type: base_parser_1.RegistryType.DOCKER_HUB,
repository: 'redis'
},
environment: {}
}
}
};
const result = (0, detectDatabaseEnvVars_1.generateDatabaseServiceConnections)(config);
// The implementation returns an empty array based on the function in src/utils/detectDatabaseEnvVars.ts
(0, vitest_1.expect)(result).toEqual([]);
});
(0, vitest_1.test)('should handle complex environment variables', () => {
const config = {
services: {
'api': {
environment: {
'PG_CONNECTION_STRING': 'postgres://user:password@db:5432/database',
'MYSQL_CONNECTION': 'mysql://root:pass@mysql:3306/app',
'MONGODB_URI': 'mongodb://mongo:27017/data'
}
},
'db': {
image: {
registry_type: base_parser_1.RegistryType.DOCKER_HUB,
repository: 'postgres',
tag: 'latest'
},
environment: {}
},
'mysql': {
image: {
registry_type: base_parser_1.RegistryType.DOCKER_HUB,
repository: 'mysql',
tag: '8.0'
},
environment: {}
},
'mongo': {
image: {
registry_type: base_parser_1.RegistryType.DOCKER_HUB,
repository: 'mongodb',
tag: 'latest'
},
environment: {}
}
}
};
const result = (0, detectDatabaseEnvVars_1.generateDatabaseServiceConnections)(config);
// The implementation returns an empty array based on the function in src/utils/detectDatabaseEnvVars.ts
(0, vitest_1.expect)(result).toEqual([]);
});
});