spec: allow warning and retry after exhausted read retries (WealthLedger/specs#79) (#80)
This commit was merged in pull request #80.
This commit is contained in:
@@ -18,7 +18,9 @@ Portfolio и других экранов чтения при фоновом об
|
||||
выборки как результат новой.
|
||||
|
||||
Доступный результат MUST оставаться видимым без индикаторов фонового чтения
|
||||
клиента, технических предупреждений об этом чтении и действий ручного повтора.
|
||||
клиента, технических предупреждений об этом чтении и действий ручного повтора,
|
||||
пока автоматические повторы не исчерпаны; после их исчерпания применяется
|
||||
требование «Временные сбои чтения восстанавливаются автоматически».
|
||||
Frontend MUST NOT подменять внутренние признаки свежести и полноты, успешное
|
||||
время источника или ошибку обновления только ради отсутствия их отображения.
|
||||
Client Cached Snapshot MUST оставаться отличным от server-side fallback;
|
||||
@@ -43,14 +45,14 @@ MUST NOT возвращать их на экран.
|
||||
|
||||
#### Scenario: Resource сохраняется после неуспешной часовой попытки
|
||||
- **WHEN** response содержит полный `data` и `meta`, обозначающий неуспех последней часовой попытки
|
||||
- **THEN** frontend сохраняет `data` и его исходное время видимыми и отдельно обозначает неуспех попытки, не предлагая ручной повтор
|
||||
- **THEN** frontend сохраняет `data` и его исходное время видимыми и отдельно обозначает неуспех попытки, не предлагая запуск повторного получения данных из источника
|
||||
|
||||
#### Scenario: Обновление Portfolio завершается ошибкой после успешного ответа
|
||||
- **WHEN** экран Brokerage Account уже показывает Client Cached Snapshot Portfolio, а последующее обновление этого же Portfolio завершается временной ошибкой
|
||||
- **THEN** frontend сохраняет Portfolio видимым без предупреждения и ручного повтора, а восстановление выполняется автоматически
|
||||
- **THEN** frontend сохраняет Portfolio видимым без предупреждения и ручного повтора, а восстановление выполняется автоматически, пока автоматические повторы не исчерпаны
|
||||
|
||||
#### Scenario: Server-side fallback и client cached snapshot различаются
|
||||
- **WHEN** backend возвращает Portfolio с `isStale` либо фоновое обновление Client Cached Snapshot завершается временной ошибкой
|
||||
- **WHEN** backend возвращает Portfolio с `isStale` либо фоновое обновление Client Cached Snapshot завершается временной ошибкой, а автоматические повторы ещё не исчерпаны
|
||||
- **THEN** frontend сохраняет доступные данные без технических сообщений и не подменяет один внутренний вид состояния другим
|
||||
|
||||
#### Scenario: Подтверждённая пустота переживает фоновую ошибку
|
||||
@@ -75,7 +77,17 @@ Frontend SHALL автоматически повторять временно н
|
||||
получение необходимых текущему экрану данных без ручного обновления. Повторы
|
||||
одной попытки MUST иметь конечный предел и паузы, исключающие непрерывную
|
||||
череду запросов. При исчерпании предела доступные данные SHALL сохраняться,
|
||||
а при их отсутствии SHALL показываться локальная недоступность. Возвращение сети,
|
||||
а при их отсутствии SHALL показываться локальная недоступность. На экранах
|
||||
Account, Accounts, Income, Operations, Events и секций деталей инструмента при исчерпании предела
|
||||
frontend SHALL дополнительно показывать неблокирующее локализованное предупреждение
|
||||
о неудачном обновлении и действие «Повторить» рядом с затронутым результатом либо
|
||||
локальной недоступностью. Действие MUST повторять только чтение (GET) затронутого
|
||||
запроса, не запускать получение данных из источника и не менять выбранные
|
||||
фильтры, период, открытые разделы и ввод; успешное чтение MUST снимать
|
||||
предупреждение и MUST NOT сообщать об успехе. Предупреждение MUST NOT дублировать
|
||||
состояние источника из `meta` и MUST NOT изменять `Portfolio.isStale`. На остальных
|
||||
экранах чтения, включая поиск, диапазон графика, карты и настройки подключения,
|
||||
предупреждение и действие повтора MUST NOT показываться. Возвращение сети,
|
||||
возвращение пользователя к открытому экрану и повторное открытие экрана MUST
|
||||
возобновлять получение отсутствующих или требующих обновления данных без
|
||||
перезагрузки страницы. Свежий полный результат MUST NOT требовать обращения
|
||||
@@ -101,6 +113,18 @@ Frontend SHALL автоматически повторять временно н
|
||||
- **WHEN** временная недоступность сохраняется после конечного предела автоматических попыток
|
||||
- **THEN** приложение прекращает серию повторов, сохраняет доступный результат либо локальную недоступность без бесконечной загрузки и ожидает следующего события восстановления
|
||||
|
||||
#### Scenario: Повторы исчерпаны при сохранённом результате
|
||||
- **WHEN** на экране Account, Accounts, Income, Operations, Events либо в секции деталей инструмента автоматические повторы исчерпаны, а ранее полученный результат остаётся доступным
|
||||
- **THEN** результат и его исходное состояние источника остаются видимыми, рядом показываются неблокирующее предупреждение о неудачном обновлении и действие «Повторить», а активация действия повторяет только чтение затронутого запроса и после успеха снимает предупреждение
|
||||
|
||||
#### Scenario: Повторы исчерпаны без результата
|
||||
- **WHEN** на тех же экранах автоматические повторы исчерпаны, а результата выборки нет
|
||||
- **THEN** локальная недоступность содержит действие «Повторить», повторяющее только чтение затронутого запроса, и результат одной секции деталей не блокирует восстановление остальных
|
||||
|
||||
#### Scenario: Поиск, график и карты остаются тихими
|
||||
- **WHEN** автоматические повторы исчерпаны при чтении результата поиска, диапазона графика, карт либо настроек подключения
|
||||
- **THEN** приложение не показывает предупреждение и действие повтора и сохраняет прежнее локальное поведение
|
||||
|
||||
#### Scenario: Сеть или пользователь вернулись
|
||||
- **WHEN** после временного сбоя восстановилась сеть либо пользователь вернулся к экрану с отсутствующим или требующим обновления результатом
|
||||
- **THEN** получение данных возобновляется автоматически для текущей выборки и при успехе заменяет состояние недоступности содержимым
|
||||
|
||||
Reference in New Issue
Block a user