Files
git-agent-sync/tests/unit/file-utils.test.ts
7000pctAUTO 4f64b49a0b
Some checks failed
/ test (push) Has been cancelled
chore: Push remaining test files
2026-02-03 08:43:23 +00:00

46 lines
1.4 KiB
TypeScript

import { sanitizeAgentName, isValidAgentName } from '../../src/utils/file-utils';
describe('sanitizeAgentName', () => {
it('should convert to lowercase', () => {
expect(sanitizeAgentName('MyAgent')).toBe('myagent');
});
it('should replace spaces with hyphens', () => {
expect(sanitizeAgentName('my agent')).toBe('my-agent');
});
it('should replace special characters with hyphens', () => {
expect(sanitizeAgentName('my@agent')).toBe('my-agent');
});
it('should collapse multiple hyphens', () => {
expect(sanitizeAgentName('my--agent')).toBe('my-agent');
});
it('should trim leading and trailing hyphens', () => {
expect(sanitizeAgentName('-my-agent-')).toBe('my-agent');
});
it('should handle complex names', () => {
expect(sanitizeAgentName('Claude Code (Production)')).toBe('claude-code-production');
});
});
describe('isValidAgentName', () => {
it('should accept valid names', () => {
expect(isValidAgentName('my-agent')).toBe(true);
expect(isValidAgentName('agent1')).toBe(true);
expect(isValidAgentName('a')).toBe(true);
});
it('should reject empty and numeric-only names', () => {
expect(isValidAgentName('')).toBe(false);
expect(isValidAgentName('123')).toBe(false);
});
it('should accept names that become valid after sanitization', () => {
expect(isValidAgentName('My Agent')).toBe(true);
expect(isValidAgentName('my@agent')).toBe(true);
});
});