25 lines
792 B
TypeScript
25 lines
792 B
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { normalizeHandle } from '../src/lib/normalize-handle.js';
|
|
|
|
describe('normalizeHandle', () => {
|
|
it('accepts bare handle', () => {
|
|
expect(normalizeHandle('steipete')).toBe('steipete');
|
|
});
|
|
|
|
it('accepts @handle and trims whitespace', () => {
|
|
expect(normalizeHandle(' @steipete ')).toBe('steipete');
|
|
});
|
|
|
|
it('rejects empty input', () => {
|
|
expect(normalizeHandle('')).toBeNull();
|
|
expect(normalizeHandle(' ')).toBeNull();
|
|
expect(normalizeHandle(null)).toBeNull();
|
|
});
|
|
|
|
it('rejects invalid characters and too-long handles', () => {
|
|
expect(normalizeHandle('@stei-pete')).toBeNull();
|
|
expect(normalizeHandle('@steipete!')).toBeNull();
|
|
expect(normalizeHandle('a'.repeat(16))).toBeNull();
|
|
});
|
|
});
|