import { describe, expect, it } from 'bun:test'; import { checkSlug, parseSlug, type SlugRecord } from './slugcheck'; describe('slugcheck', () => { it('parseSlug', () => { expect(parseSlug('')).toBeNull(); expect(parseSlug('aaaa-333')).toMatchObject({ id: 333 }); expect(parseSlug('aaaa-333')).toMatchObject({ id: 333, name: 'Aaaa' }); expect(parseSlug('my-favorite-record-34234')).toMatchObject({ id: 34234, name: 'My Favorite Record' }); expect(parseSlug('33')).toMatchObject({ id: 33 }); }); it('checkSlug success', () => { const params = { nameSlug: 'my-favorite-record-34234', teamSlug: 'best_team-43', article: '33', userSlug: '44' }; const slugs = checkSlug(params); expect(slugs).not.toBeNull(); expect(slugs).toHaveProperty('nameSlug'); const s = slugs as SlugRecord; expect(s.nameSlug).toBeObject(); expect(s.nameSlug?.name).toEqual('My Favorite Record'); expect(s.nameSlug?.id).toEqual(34234); expect(s).toHaveProperty('teamSlug'); expect(s).toHaveProperty('userSlug'); expect(s).not.toHaveProperty('article'); }); it('checkSlug failure', () => { const params = { nameSlug: 'my-favorite-record' }; const slugs = checkSlug(params); expect(slugs).toBeNull(); }); it('checkSlug empty', () => { const params = { article: '33' }; const slugs = checkSlug(params); expect(slugs).not.toBeNull(); expect(slugs).toBeObject(); expect(Object.keys(slugs as SlugRecord)).toHaveLength(0); }); });