Files
specs/openspec/changes/group-account-rows-by-instrument/test-cases/grouping.md
T
ksv741 9aa390b8e9
Conventional commits / commits (pull_request) Successful in 9s
Specs security / security (pull_request) Successful in 6s
Specs verify / verify (pull_request) Successful in 8s
spec: plan grouping of all-account rows by instrument (WealthLedger/main#47)
2026-10-30 07:12:37 +03:00

8.4 KiB
Raw Blame History

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)