Syntax previewClick to edit
1234
export default function validateUsername(name) {
throw new Error('Not implemented');
}
Syntax previewClick to edit
123456789101112131415161718192021222324252627282930313233
import validateUsername from './validateUsername';
describe('validateUsername', () => {
test('accepts valid usernames', () => {
expect(validateUsername('alice_1')).toBe(true);
expect(validateUsername('abc')).toBe(true);
expect(validateUsername('a123456789012345')).toBe(true);
});
test('rejects invalid length', () => {
expect(validateUsername('ab')).toBe(false);
expect(validateUsername('a1234567890123456')).toBe(false);
});
test('rejects uppercase or invalid chars', () => {
expect(validateUsername('Alice')).toBe(false);
expect(validateUsername('bob-dash')).toBe(false);
});
test('rejects leading digit, trailing underscore, or consecutive underscores', () => {
expect(validateUsername('2cool')).toBe(false);
expect(validateUsername('bob_')).toBe(false);
expect(validateUsername('bob__x')).toBe(false);
});
test('rejects non-string values', () => {
expect(validateUsername(null)).toBe(false);
expect(validateUsername(undefined)).toBe(false);
expect(validateUsername(123)).toBe(false);
});
});
Run tests to see results.