Files
2026-07-13 12:47:58 +08:00

40 lines
1.3 KiB
TypeScript

import { describe, expect, test } from 'vitest'
import { normalizeBuildArguments } from '../../../src/template/utils'
import { TemplateError } from '../../../src/errors'
describe('normalizeBuildArguments', () => {
test('handles string name', () => {
const result = normalizeBuildArguments('my-template:v1.0')
expect(result.name).toBe('my-template:v1.0')
})
test('handles string name with options', () => {
const result = normalizeBuildArguments('my-template:v1.0', { cpuCount: 4 })
expect(result.name).toBe('my-template:v1.0')
expect(result.buildOptions).toEqual({ cpuCount: 4 })
})
test('handles legacy options with alias', () => {
const result = normalizeBuildArguments({ alias: 'my-template' })
expect(result.name).toBe('my-template')
})
test('removes alias from build options', () => {
const result = normalizeBuildArguments({
alias: 'my-template',
cpuCount: 4,
})
expect(result.name).toBe('my-template')
expect(result.buildOptions).toEqual({ cpuCount: 4 })
expect(result.buildOptions).not.toHaveProperty('alias')
})
test('throws for empty name', () => {
expect(() => normalizeBuildArguments({ alias: '' })).toThrow(TemplateError)
})
test('throws for missing name', () => {
expect(() => normalizeBuildArguments({} as any)).toThrow(TemplateError)
})
})