test: зелёный сьют — синхрон политики пароля (8), jsdom devDep, serial-прогон

Чинит 8 «baseline»-падений (теперь 330/330):
- auth (3): контроллер/фронт требуют пароль >=8, а схема роута (minLen:6) и тест
  (7-симв. 'pass123') устарели → схема register/profile 6→8, тест-пароли → 8 симв.
  (login/duplicate падали как следствие незарегистрированного юзера).
- page (5): jsdom не был установлен → добавлен в devDependencies.
- флакость jsdom-страниц при параллельном прогоне (фикс. wait под нагрузкой CPU) →
  npm test с --test-concurrency=1 (детерминированно; в изоляции тесты и так проходят).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-19 16:53:04 +03:00
parent eed8343977
commit 2d7833cad9
4 changed files with 550 additions and 6 deletions
+2 -2
View File
@@ -10,7 +10,7 @@ const profileLimiter = rateLimit({ windowMs: 60_000, max: 10, message: 'Сли
const registerSchema = { body: {
email: { type: 'string', required: true, maxLen: 255, match: /^[^\s@]+@[^\s@]+\.[^\s@]+$/ },
password: { type: 'string', required: true, minLen: 6, maxLen: 128 },
password: { type: 'string', required: true, minLen: 8, maxLen: 128 }, // политика — 8 (как в контроллере и на фронте)
name: { type: 'string', required: true, minLen: 1, maxLen: 100 },
}};
const loginSchema = { body: {
@@ -19,7 +19,7 @@ const loginSchema = { body: {
}};
const profileSchema = { body: {
name: { type: 'string', minLen: 1, maxLen: 100 },
newPassword: { type: 'string', minLen: 6, maxLen: 128 },
newPassword: { type: 'string', minLen: 8, maxLen: 128 }, // политика — 8 (как в контроллере)
currentPassword: { type: 'string', maxLen: 128 },
}};