Пользователь редактирует профиль в двух вкладках одновременно.
Исходное состояние:
{
"name": "Ivan",
"phone": "+79990000000",
"version": 3
}
Шаги:
1️⃣ Вкладка A — загрузка профиля (GET /api/profile)
2️⃣ Вкладка B — загрузка профиля (GET /api/profile)
3️⃣ Вкладка A — обновление имени
PUT /api/profile
{
"name": "Ivan Petrov",
"version": 3
}
4️⃣ Вкладка B — обновление телефона
PUT /api/profile
{
"phone": "+78880000000",
"version": 3
}
Запросы уходят почти одновременно.
❓ Что должно произойти:
👍 — Один запрос проходит (200/204), второй получает 409 Conflict / 412 Precondition Failed из-за устаревшей version (lost update предотвращён).
🥰 — Оба запроса проходят успешно (200/204), изменения «склеиваются» автоматически без конфликта.
❤️ — Оба запроса возвращают 200/204, но применяется только последний — первый молча перезаписывается.
🔥 — Сервис отвечает 500/timeout при одновременных запросах, потому что «конфликт версий — это исключение».
📍 Навигация: [Вакансии]
🐸 Библиотека тестировщика
#стендап_qa
