// @vitest-environment nuxt import { vi, describe, it, expect } from 'vitest'; import { useRoute } from 'vue-router'; import { useSlug } from '../use-slug'; vi.mock('vue-router', async (importOriginal) => { const mod = await importOriginal(); return { ...mod, useRoute: vi.fn() }; }); describe('useSlug', () => { it('конвертирует kebab-case slug', () => { vi.mocked(useRoute).mockReturnValue({ params: { slug: 'john-doe' } } as any); const slug = useSlug(); expect(slug.value).toBe('john doe'); }); it('пустая строка если slug отсутствует', () => { vi.mocked(useRoute).mockReturnValue({ params: {} } as any); const slug = useSlug(); expect(slug.value).toBe(''); }); it('кастомное имя параметра', () => { vi.mocked(useRoute).mockReturnValue({ params: { name: 'big-tits' } } as any); const slug = useSlug('name'); expect(slug.value).toBe('big tits'); }); it('slug с подчёркиваниями', () => { vi.mocked(useRoute).mockReturnValue({ params: { slug: 'some_thing' } } as any); const slug = useSlug(); expect(slug.value).toBe('some-thing'); }); });