spec: plan grouping of all-account rows by instrument (WealthLedger/main#47)
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
# Test Cases — grouping
|
||||
|
||||
## TC-GRP-001 — Интерливинг трёх записей одной группы в серверном порядке
|
||||
|
||||
**Verifies:** `brokerage-account-ledger` — `All-accounts ledger groups same-day entries of one instrument` (new combination: порядок внутри группы из 3+ записей с интерливингом чужих записей)
|
||||
**Risk / Priority:** Высокий / High
|
||||
**Preconditions:** Режим «Все счета»; брокерский счёт и ИИС доступны; период подтверждённо полный.
|
||||
**Test Data:** Серверный порядок записей одного дня: A1 (купон X, Брокерский, +200 RUB), B (перевод, без Instrument), A2 (купон X, ИИС, +100 RUB), C (купон Y, Брокерский, +50 RUB), A3 (купон X, Брокерский, +150 RUB).
|
||||
**Steps:**
|
||||
1. Открыть полный журнал в режиме «Все счета» за этот день.
|
||||
2. Зафиксировать порядок групп и записей.
|
||||
**Expected Results:** Группа X (A1+A2+A3) стоит на месте A1 — до B; внутри группы порядок A1, A2, A3; затем B, затем C. Относительный порядок B и C сохранён. Итог группы +450 RUB.
|
||||
**Automation Candidate:** yes (E2E)
|
||||
|
||||
## TC-GRP-002 — Две разные группы, записи которых чередуются
|
||||
|
||||
**Verifies:** `brokerage-account-ledger` — `All-accounts ledger groups same-day entries of one instrument` / `All-accounts ledger grouping preserves order and limits` (new combination)
|
||||
**Risk / Priority:** Высокий / High
|
||||
**Preconditions:** Режим «Все счета», полный период.
|
||||
**Test Data:** Порядок: X1 (купон X), Y1 (дивиденд Y), X2, Y2, X3. X — облигация, Y — акция; купоны X по 100 RUB (Брокерский, ИИС, Брокерский), дивиденды Y по 50 RUB (ИИС, Брокерский).
|
||||
**Steps:**
|
||||
1. Открыть журнал «Все счета» за день.
|
||||
**Expected Results:** Две группы: группа X на месте X1 с итогом +300 RUB, группа Y на месте Y1 с итогом +100 RUB; порядок групп X → Y; внутри каждой — серверный порядок записей.
|
||||
**Automation Candidate:** yes (E2E)
|
||||
|
||||
## TC-GRP-003 — Одна и та же бумага: figi-only identity против instrumentUid — не смешивать разные идентичности
|
||||
|
||||
**Verifies:** `brokerage-account-ledger` — `All-accounts ledger groups same-day entries of one instrument` (new combination: строгость identity-ключа)
|
||||
**Risk / Priority:** Средний / High
|
||||
**Preconditions:** Режим «Все счета», полный период.
|
||||
**Test Data:** В один день: купон облигации Z на счёте 1 (+100 RUB, identity по figi), купон облигации Z на счёте 2 (+100 RUB, identity по instrumentUid без figi); и купон облигации W на двух счетах (+100 RUB и +50 RUB), где обе записи имеют одинаковый identity.
|
||||
**Steps:**
|
||||
1. Открыть журнал «Все счета» за день.
|
||||
**Expected Results:** Облигация W образует группу с итогом +150 RUB. Две записи облигации Z показаны отдельно: равенство identity не доказано, ключ строится по первому непустому идентификатору (design D2), а группировка без доказанного равенства не выполняется.
|
||||
**Automation Candidate:** yes (E2E со stubbed API, отложено до появления QA repo)
|
||||
|
||||
## TC-GRP-004 — Граница дня около полуночи местного времени
|
||||
|
||||
**Verifies:** `brokerage-account-ledger` — `All-accounts ledger groups same-day entries of one instrument` (new combination: экранный день в местном времени)
|
||||
**Risk / Priority:** Средний / Medium
|
||||
**Preconditions:** Режим «Все счета», полный период.
|
||||
**Test Data:** Купон X +100 RUB с execution time 23:59:30 Europe/Moscow и купон X +100 RUB с execution time 00:00:30 следующего календарного дня Europe/Moscow.
|
||||
**Steps:**
|
||||
1. Открыть журнал «Все счета», охватывающий оба момента.
|
||||
**Expected Results:** Экранный день определяется так же, как дата, которую строка показывает на этом экране (spec: «как на экране», design D2 — локальная timezone браузера). При timezone браузера Europe/Moscow записи показаны в разных днях и группу не образуют. Oracle — дата, показанная в строке, а не UTC-дата `occurredAt`.
|
||||
**Automation Candidate:** yes (E2E с фиксированной timezone браузера, отложено до появления QA repo)
|
||||
|
||||
## TC-GRP-005 — Прогноз: неизвестная сумма + известные суммы в двух валютах в одной группе
|
||||
|
||||
**Verifies:** `brokerage-account-upcoming-events` — `All-accounts upcoming event group shows each event and a forecast total` (new combination)
|
||||
**Risk / Priority:** Высокий / High
|
||||
**Preconditions:** Режим «Все счета», страница «Будущие события».
|
||||
**Test Data:** Дивиденд D: событие на Брокерском 10 USD (известно), событие на ИИС 200 RUB (известно), событие на третьем счёте без суммы; все — одна дата реестра, один точный тип.
|
||||
**Steps:**
|
||||
1. Открыть «Будущие события» в режиме «Все счета».
|
||||
**Expected Results:** Одна группа из трёх событий; строка без суммы показывает «неизвестно»; итог группы скрыт, потому что у одного события сумма неизвестна (прогноз полный, но не полностью известен по суммам); известные 10 USD и 200 RUB показаны отдельными строками, без конвертации и без общего итога. Дата в заголовке обозначена как дата реестра.
|
||||
**Automation Candidate:** yes (E2E)
|
||||
|
||||
## TC-GRP-006 — «Выплаты» в `all`: отрицательная корректировка и дубли operation IDs внутри одной группы, аналитические итоги не меняются
|
||||
|
||||
**Verifies:** `brokerage-account-income-analytics` — `Income payments remain traceable to exact Ledger Entries` / Scenario: Отрицательная корректировка и повторяющиеся IDs сохраняются (new combination: то же внутри группы `all`)
|
||||
**Risk / Priority:** Высокий / High
|
||||
**Preconditions:** Режим «Все счета», раздел «Выплаты», период подтверждённо полный.
|
||||
**Test Data:** За один день по облигации X: купон +200 RUB (Брокерский, opId=77), купон +100 RUB (ИИС, opId=77 — дубликат), корректировка −50 RUB (Брокерский, тот же тип). Аналитические итоги страницы зафиксированы до.
|
||||
**Steps:**
|
||||
1. Открыть «Выплаты» в режиме «Все счета» за период.
|
||||
2. Сравнить аналитические итоги с зафиксированными.
|
||||
**Expected Results:** Одна группа из трёх карточек; обе записи opId=77 — отдельные карточки; корректировка со знаком «−»; итог группы +250 RUB; валютные заголовки групп и receipt count отсутствуют; аналитические итоги страницы не пересчитаны и не изменились.
|
||||
**Automation Candidate:** yes (E2E)
|
||||
Reference in New Issue
Block a user