UNPKG

@deploystack/docker-to-iac

Version:

Translate docker run and docker compose file to Infrastructure as Code

66 lines (65 loc) 3.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const vitest_1 = require("vitest"); const parseDockerImage_1 = require("../../../src/utils/parseDockerImage"); const base_parser_1 = require("../../../src/parsers/base-parser"); (0, vitest_1.describe)('parseDockerImage', () => { (0, vitest_1.test)('should parse simple Docker Hub image', () => { const result = (0, parseDockerImage_1.parseDockerImage)('nginx'); (0, vitest_1.expect)(result).toEqual({ registry_type: base_parser_1.RegistryType.DOCKER_HUB, repository: 'nginx', tag: 'latest' }); }); (0, vitest_1.test)('should parse Docker Hub image with tag', () => { const result = (0, parseDockerImage_1.parseDockerImage)('nginx:1.21'); (0, vitest_1.expect)(result).toEqual({ registry_type: base_parser_1.RegistryType.DOCKER_HUB, repository: 'nginx', tag: '1.21' }); }); (0, vitest_1.test)('should parse Docker Hub image with organization', () => { const result = (0, parseDockerImage_1.parseDockerImage)('bitnami/nginx:latest'); (0, vitest_1.expect)(result).toEqual({ registry_type: base_parser_1.RegistryType.DOCKER_HUB, repository: 'bitnami/nginx', tag: 'latest' }); }); (0, vitest_1.test)('should parse GitHub Container Registry image', () => { const result = (0, parseDockerImage_1.parseDockerImage)('ghcr.io/dagu-org/dagu:latest'); (0, vitest_1.expect)(result).toEqual({ registry_type: base_parser_1.RegistryType.GHCR, registry: 'ghcr.io', repository: 'dagu-org/dagu', tag: 'latest' }); }); (0, vitest_1.test)('should parse custom registry image', () => { const result = (0, parseDockerImage_1.parseDockerImage)('registry.example.com/project/image:tag'); (0, vitest_1.expect)(result).toEqual({ registry_type: base_parser_1.RegistryType.DOCKER_HUB, registry: 'registry.example.com', repository: 'project/image', tag: 'tag' }); }); (0, vitest_1.test)('should parse image with digest', () => { const result = (0, parseDockerImage_1.parseDockerImage)('nginx@sha256:abcdef123456'); (0, vitest_1.expect)(result).toEqual({ registry_type: base_parser_1.RegistryType.DOCKER_HUB, repository: 'nginx', digest: 'sha256:abcdef123456' }); }); (0, vitest_1.test)('should throw error for empty string', () => { (0, vitest_1.expect)(() => (0, parseDockerImage_1.parseDockerImage)('')).toThrow('Docker image string cannot be empty'); }); (0, vitest_1.test)('should throw error for non-string input', () => { (0, vitest_1.expect)(() => (0, parseDockerImage_1.parseDockerImage)(null)).toThrow('Docker image must be a string'); (0, vitest_1.expect)(() => (0, parseDockerImage_1.parseDockerImage)(undefined)).toThrow('Docker image must be a string'); (0, vitest_1.expect)(() => (0, parseDockerImage_1.parseDockerImage)({})).toThrow('Docker image must be a string'); }); });