flnxi-Wu/lib/__tests__/password-policy.test.ts
2026-05-25 16:10:18 +08:00

25 lines
854 B
TypeScript

import { validatePasswordStrength } from '../password-policy'
describe('validatePasswordStrength', () => {
test('拒绝空密码、短密码和常见弱密码', () => {
expect(validatePasswordStrength('').valid).toBe(false)
expect(validatePasswordStrength('Ab1!').error).toBe('密码长度至少为 10 位')
expect(validatePasswordStrength('admin123').valid).toBe(false)
})
test('拒绝字符类别不足的密码', () => {
const result = validatePasswordStrength('abcdefghij')
expect(result.valid).toBe(false)
expect(result.error).toContain('至少 3 类')
})
test('拒绝全部重复字符', () => {
expect(validatePasswordStrength('!!!!!!!!!!').valid).toBe(false)
})
test('允许长度和复杂度达标的密码', () => {
expect(validatePasswordStrength('Flnxi-2026-Safe').valid).toBe(true)
})
})