Files
specs/openspec/changes/group-account-rows-by-instrument/test-cases/totals.md
T
codex-bot f3a6b78461
Specs security / security (push) Successful in 7s
Specs verify / verify (push) Successful in 9s
spec: plan grouping of all-account rows by instrument (WealthLedger/main#47) (#64)
2026-10-30 07:28:31 +03:00

5.6 KiB
Raw Blame History

Test Cases — totals

TC-TOT-001 — Мультивалютная группа со смешанными знаками и большой разрядностью: точный десятичный оракул

Verifies: brokerage-account-ledger — All-accounts ledger group shows each entry and an exact total (new combination: calculated oracle) Risk / Priority: Высокий / High Preconditions: Режим «Все счета», полный период. Test Data: Один день, облигация X, точный тип «купон»: +0.1 RUB (Брокерский), +0.2 RUB (ИИС), −1500000.45 RUB (Брокерский, корректировка того же типа), +200 RUB (ИИС); плюс в той же группе день выплат USD: +0.01 USD и −0.02 USD. Steps:

  1. Открыть журнал «Все счета» за день.
  2. Прочитать итог группы по каждой валюте. Expected Results: Итог RUB = −1499800.15 (точная десятичная сумма: 0.1+0.2−1500000.45+200), без плавающей точки артефактов (не −1499800.1499999); итог USD = −0.01; два отдельных итога, без конвертации и без общего итога; каждая строка показывает свою сумму со знаком. Automation Candidate: yes (E2E)

TC-TOT-002 — Разное число знаков после запятой у записей группы

Verifies: brokerage-account-ledger — All-accounts ledger group shows each entry and an exact total (new combination) Risk / Priority: Средний / High Preconditions: Режим «Все счета», полный период. Test Data: Группа купонов X: +100.5 RUB, +49.50 RUB, +0.005 RUB (если сервер отдаёт такую точность). Steps:

  1. Открыть журнал, прочитать итог. Expected Results: Итог = 150.005 RUB ровно, без округления до 2 знаков и без потери младшего разряда; строки показывают суммы как отданы сервером. Automation Candidate: yes (E2E)

TC-TOT-003 — Нулевой итог и запись без денежного изменения в одной группе

Verifies: brokerage-account-ledger — All-accounts ledger group shows each entry and an exact total / Scenario: Нулевой итог; Scenario: Группа с записью без денежного изменения (new combination: обе записи в одной группе) Risk / Priority: Средний / Medium Preconditions: Режим «Все счета», полный период. Test Data: Группа X: +150.10 RUB, −150.10 RUB, запись без денежного изменения (например, только количество бумаг). Steps:

  1. Открыть журнал, прочитать группу. Expected Results: Итог группы скрыт; запись без изменения обозначена как «без движения», а не как 0 RUB; строки остаются видимыми. Automation Candidate: yes (E2E)

TC-TOT-004 — partial → подтверждённая полнота: итог появляется

Verifies: brokerage-account-ledger — All-accounts ledger group shows each entry and an exact total / Scenario: Итог скрыт при неполном периоде (new combination: смена состояния) Risk / Priority: Высокий / High Preconditions: Режим «Все счета»; заглушка API (MSW/Playwright route) с управляемым meta. Test Data: Группа X: +200 RUB и +100 RUB. Первый ответ — meta с partial для одного из счетов; второй ответ — подтверждённая полнота. Steps:

  1. Открыть журнал с partial-ответом; зафиксировать группу.
  2. Подтвердить полноту (повторный запрос/фоновая догрузка с полной meta). Expected Results: При partial: строки видны, итог скрыт. После полноты: появляется точный итог +300 RUB; состав и порядок строк не изменились. Automation Candidate: yes (E2E)

TC-TOT-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: Два соседних дня: день 1 — купоны X на двух счетах по 100 RUB (обе суммы известны); день 2 — купоны X на двух счетах, у одной суммы нет. Steps:

  1. Открыть «Будущие события». Expected Results: Группа дня 1: итог +200 RUB. Группа дня 2: итог скрыт, строка без суммы обозначена как неизвестная. Итоги списком не сводятся. Automation Candidate: yes (E2E)