import { describe, expect, it } from 'vitest' import { isSlug, slugify } from '~/domain/slug' describe('slugify', () => { it('macht aus einem Namen einen Slug', () => { expect(slugify('MTA Telematik')).toBe('mta-telematik') }) it('schreibt Umlaute aus', () => { expect(slugify('Größe und Öl')).toBe('groesse-und-oel') }) it('wirft Sonderzeichen weg und lässt keine Bindestriche am Rand', () => { expect(slugify(' Trakk / Regel-Engine! ')).toBe('trakk-regel-engine') }) it('liefert eine leere Zeichenkette, wenn nichts Verwertbares übrig bleibt', () => { expect(slugify('///')).toBe('') }) }) describe('isSlug', () => { it('nimmt Kleinbuchstaben, Ziffern und Bindestriche an', () => { expect(isSlug('mta-360')).toBe(true) }) it('lehnt Großbuchstaben ab', () => { expect(isSlug('Trakk')).toBe(false) }) it('lehnt führende und doppelte Bindestriche ab', () => { expect(isSlug('-trakk')).toBe(false) expect(isSlug('trakk--web')).toBe(false) }) it('lehnt einen zu kurzen Slug ab', () => { expect(isSlug('a')).toBe(false) }) })