import { expect, test } from 'vitest'; import { validateBranch, validateCommitHash } from './validation'; test('accepts normal branch names and rejects unsafe values', () => { expect(validateBranch('feature/preview-panel')).toBe(''); expect(validateBranch('../master')).toBe('分支名格式不正确'); expect(validateBranch('feature;rm')).toBe('分支名格式不正确'); }); test('commit hash is optional but must be a git hash when present', () => { expect(validateCommitHash('')).toBe(''); expect(validateCommitHash('a0242e35')).toBe(''); expect(validateCommitHash('not-a-hash')).not.toBe(''); });