28 lines
975 B
TypeScript
28 lines
975 B
TypeScript
import { PasswordPolicy } from '../../src/gateway/auth/password-policy';
|
|
|
|
describe('PasswordPolicy', () => {
|
|
it('should accept valid password', () => {
|
|
const result = PasswordPolicy.validate('ValidPass123!');
|
|
expect(result.valid).toBe(true);
|
|
expect(result.errors).toHaveLength(0);
|
|
});
|
|
|
|
it('should reject short password', () => {
|
|
const result = PasswordPolicy.validate('Short1!');
|
|
expect(result.valid).toBe(false);
|
|
expect(result.errors.length).toBeGreaterThan(0);
|
|
});
|
|
|
|
it('should reject password without uppercase', () => {
|
|
const result = PasswordPolicy.validate('validpass123!');
|
|
expect(result.valid).toBe(false);
|
|
expect(result.errors.some((e) => e.includes('uppercase'))).toBe(true);
|
|
});
|
|
|
|
it('should reject password without numbers', () => {
|
|
const result = PasswordPolicy.validate('ValidPassword!');
|
|
expect(result.valid).toBe(false);
|
|
expect(result.errors.some((e) => e.includes('number'))).toBe(true);
|
|
});
|
|
});
|