hermes-agent/apps/desktop/src/lib/sanitize.test.ts
2026-06-25 16:40:27 -05:00

32 lines
995 B
TypeScript

import { describe, expect, it } from 'vitest'
import { gitRef, slug } from './sanitize'
describe('gitRef', () => {
it('turns spaces into hyphens and keeps slashes', () => {
expect(gitRef('beach vibes')).toBe('beach-vibes')
expect(gitRef('feat/cool thing')).toBe('feat/cool-thing')
})
it('drops chars git refs forbid and collapses separators', () => {
expect(gitRef('wip~^:?*[]')).toBe('wip')
expect(gitRef('a b///c..d')).toBe('a-b/c.d')
})
it('strips a leading separator but stays typeable (keeps a trailing one)', () => {
expect(gitRef('/foo')).toBe('foo')
expect(gitRef('feat/')).toBe('feat/')
})
})
describe('slug', () => {
it('lowercases and kebabs runs of non-alphanumerics', () => {
expect(slug('My Profile')).toBe('my-profile')
expect(slug('a__b c')).toBe('a-b-c')
})
it('strips a leading separator but keeps a trailing one while typing', () => {
expect(slug('--x')).toBe('x')
expect(slug('work ')).toBe('work-')
})
})