@deploystack/docker-to-iac
Version:
Translate docker run and docker compose file to Infrastructure as Code
49 lines (48 loc) • 3.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const vitest_1 = require("vitest");
const serviceNameTransformers_1 = require("../../../src/utils/serviceNameTransformers");
// Mock the digitalOceanParserServiceName module
vitest_1.vi.mock('../../../src/utils/digitalOceanParserServiceName', () => ({
digitalOceanParserServiceName: vitest_1.vi.fn((name) => `do-${name}`)
}));
// Import the mocked function
const digitalOceanParserServiceName_1 = require("../../../src/utils/digitalOceanParserServiceName");
(0, vitest_1.describe)('getServiceNameTransformer', () => {
(0, vitest_1.test)('should return digitalOcean transformer when specified', () => {
const transformer = (0, serviceNameTransformers_1.getServiceNameTransformer)('digitalOcean');
// Execute the transformer to verify it calls the right function
const result = transformer('my-service');
(0, vitest_1.expect)(result).toBe('do-my-service');
(0, vitest_1.expect)(digitalOceanParserServiceName_1.digitalOceanParserServiceName).toHaveBeenCalledWith('my-service');
});
(0, vitest_1.test)('should return default transformer when no name specified', () => {
const transformer = (0, serviceNameTransformers_1.getServiceNameTransformer)();
// Default transformer should return input unchanged
const result = transformer('my-service');
(0, vitest_1.expect)(result).toBe('my-service');
});
(0, vitest_1.test)('should return default transformer for unknown transformer name', () => {
const transformer = (0, serviceNameTransformers_1.getServiceNameTransformer)('nonexistent');
// Default transformer should return input unchanged
const result = transformer('my-service');
(0, vitest_1.expect)(result).toBe('my-service');
});
(0, vitest_1.test)('should handle empty service name', () => {
const transformer = (0, serviceNameTransformers_1.getServiceNameTransformer)('digitalOcean');
transformer('');
(0, vitest_1.expect)(digitalOceanParserServiceName_1.digitalOceanParserServiceName).toHaveBeenCalledWith('');
});
(0, vitest_1.test)('should handle special characters in service name', () => {
const transformer = (0, serviceNameTransformers_1.getServiceNameTransformer)('digitalOcean');
transformer('my_service@special');
(0, vitest_1.expect)(digitalOceanParserServiceName_1.digitalOceanParserServiceName).toHaveBeenCalledWith('my_service@special');
});
(0, vitest_1.test)('should handle default transformer with various inputs', () => {
const transformer = (0, serviceNameTransformers_1.getServiceNameTransformer)('default');
(0, vitest_1.expect)(transformer('my-service')).toBe('my-service');
(0, vitest_1.expect)(transformer('')).toBe('');
(0, vitest_1.expect)(transformer('MY_SERVICE')).toBe('MY_SERVICE');
(0, vitest_1.expect)(transformer('service-123')).toBe('service-123');
});
});