Files
pichunt/shared/utils/slugcheck.test.ts
T
Pascal cfda014760 refactor(auth): simplify authorization checks to use membership only
- Remove explicit ADMIN role checks in API handlers
- Replace combined creator/member role checks with membership-only filters
- Update seed data roles to reflect changed authorization logic
- Add migration to insert hunt creators as members for consistent checks
- Prevent removal of hunt creator as a member with new explicit check
- Adjust related user role updates and queries accordingly
- Upgrade dependencies including nuxt and zod for compatibility
2026-07-30 21:59:36 +02:00

52 lines
1.5 KiB
TypeScript

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);
});
});