mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-06-29 11:42:04 +00:00
32 lines
995 B
TypeScript
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-')
|
|
})
|
|
})
|