2.7 KiB
2.7 KiB
frontend-data-resilience Specification
Purpose
Определяет, когда frontend сохраняет последний успешный ответ на экране и как сообщает пользователю о неудачном фоновом обновлении без искажения доменных состояний Portfolio.
Requirements
Requirement: Client Cached Snapshot остаётся доступным при обновлении Accounts и Portfolio
Frontend MUST сохранять Client Cached Snapshot списка Brokerage Accounts или
Portfolio на экране, если для этого же набора данных уже был успешно получен
ответ. Начальная загрузка без такого ответа может показывать блокирующее
состояние загрузки. Client Cached Snapshot MUST оставаться видимым во время
фонового обновления и после его ошибки; он не является server-side fallback и MUST NOT
изменять или интерпретировать поле Portfolio.isStale.
Scenario: Список Brokerage Accounts обновляется в фоне
- WHEN экран Accounts уже показывает Client Cached Snapshot и начинается фоновое обновление того же списка
- THEN frontend оставляет список видимым и показывает только неблокирующий индикатор обновления
Scenario: Обновление Portfolio завершается ошибкой после успешного ответа
- WHEN экран Brokerage Account уже показывает Client Cached Snapshot Portfolio, а последующее обновление этого же Portfolio завершается ошибкой
- THEN frontend сохраняет Portfolio видимым, показывает локализованное неблокирующее предупреждение о показе последних полученных данных и предоставляет повторную попытку обновления
Scenario: Server-side fallback и client cached snapshot различаются
- WHEN backend возвращает Portfolio с
isStaleлибо фоновое обновление Client Cached Snapshot завершается ошибкой - THEN frontend отображает соответствующее server-side либо client-side предупреждение независимо, не представляя один вид состояния другим