food-market/tests/e2e/scenarios/auth-password.yml
nns a04b4bf2dd test(e2e): scenarios platform-smtp + auth-password
platform-smtp (ТЗ 2.9, 6 шагов): причина изменения обязательна (≥10),
test-send без настроек → 400, пароль шифруется в БД (не плейнтекст) и никогда
не возвращается клиентом, сентинел __clear__ очищает пароль.

auth-password (ТЗ 2.1.3, 6 шагов): анти-энумерация (forgot всегда 200),
reset с битым токеном / коротким паролем → 400, рейт-лимит forgot (>3/час
с IP → 429).

Оба сценария зелёные, багов в этих областях нет.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 11:56:29 +05:00

28 lines
1.4 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: auth-password
description: |
Восстановление пароля (ТЗ 2.1.3): анти-энумерация (forgot всегда 200),
reset с битым токеном → 400, слишком короткий пароль → 400, рейт-лимит
forgot (>3 запросов/час с IP → 429).
Примечание: рейт-лимит хранится в памяти процесса API per-IP на 1 час.
Сценарий рассчитан на запуск против свежезапущенного API (повторный прогон
без рестарта увидит 429 на первых же forgot-запросах).
preconditions:
reset_db: true
smoke_login_super_admin: true
steps:
- id: step01_bootstrap
title: "Создать орг → известный email активного пользователя"
- id: step02_forgot_unknown_200
title: "forgot-password несуществующего email → 200 (анти-энумерация)"
- id: step03_forgot_known_200
title: "forgot-password существующего email → 200"
- id: step04_reset_bad_token
title: "reset-password с битым токеном → 400"
- id: step05_reset_short_password
title: "reset-password со слишком коротким паролем → 400"
- id: step06_forgot_rate_limited
title: "Серия forgot с одного IP → появляется 429 (рейт-лимит)"