test(golden): тесты ядра под обновлённые golden fixtures (#33) #35

Merged
aep merged 1 commits from fix/33-golden-tests into main 2026-10-07 06:50:14 +03:00
Owner

Closes #33.

Красный main ядра после мержей fixtures #8–#11: два интеграционных теста ждали старые ожидания. Код маппинга не меняется — эксперимент с поднятым счётчиком показал, что все 113 снимков (129 документов, 24 384 строки, ~7 с) маппятся с выполнением всех инвариантов, включая книги ДКБ с needs_check и листами форм.

  • test_mapping_golden: EXPECTED_SNAPSHOTS == 88 → MIN_SNAPSHOTS >= 113 с разбивкой по группам в сообщении (rb 42, schastl 30, osv-dkb 22, synthetic 19). Корень #33 — каждый PR в fixtures ломал ядро; теперь новые снимки автоматически проходят инварианты, а пропажа снимков ловится.
  • Коды вне плана счетов seed: <= {"60.АВ"} → KNOWN_OUT_OF_PLAN (60.АВ + 76.07.4, 76.09.1–4, 76.77, 76.77.1/2/5, 76.АФ из ОСВ пакета ДКБ). У таких строк account_id = NULL по спеке; новый неизвестный код по-прежнему валит тест. Добавлять ли коды в seed плана счетов — вопрос в #28 (комментарий там).
  • test_consolidation_fixtures: UNMAPPED_TOTAL 1381 → 1379: две строки свода РБ 2024 Q3 находят контрагента по ИНН, извлечённому парсером из названия (tabular-parser #15).

Проверка: make check-full — lint, unit, dbml-check, check-infra, интеграция (685 passed).

Rulings I made:

  • Счётчик снимков снизу, а не равенство (согласовано с владельцем в чате).
  • Новые коды вне плана — в список теста, а не в seed (решение по seed — владельцу, #28).

🤖 Generated with Claude Code

https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2

Closes #33. Красный main ядра после мержей fixtures #8–#11: два интеграционных теста ждали старые ожидания. Код маппинга не меняется — эксперимент с поднятым счётчиком показал, что все 113 снимков (129 документов, 24 384 строки, ~7 с) маппятся с выполнением всех инвариантов, включая книги ДКБ с `needs_check` и листами форм. - `test_mapping_golden`: `EXPECTED_SNAPSHOTS == 88` → `MIN_SNAPSHOTS >= 113` с разбивкой по группам в сообщении (rb 42, schastl 30, osv-dkb 22, synthetic 19). Корень #33 — каждый PR в fixtures ломал ядро; теперь новые снимки автоматически проходят инварианты, а пропажа снимков ловится. - Коды вне плана счетов seed: `<= {"60.АВ"}` → `KNOWN_OUT_OF_PLAN` (60.АВ + 76.07.4, 76.09.1–4, 76.77, 76.77.1/2/5, 76.АФ из ОСВ пакета ДКБ). У таких строк `account_id = NULL` по спеке; новый неизвестный код по-прежнему валит тест. Добавлять ли коды в seed плана счетов — вопрос в #28 (комментарий там). - `test_consolidation_fixtures`: `UNMAPPED_TOTAL` 1381 → 1379: две строки свода РБ 2024 Q3 находят контрагента по ИНН, извлечённому парсером из названия (tabular-parser #15). Проверка: `make check-full` — lint, unit, dbml-check, check-infra, интеграция (685 passed). Rulings I made: - Счётчик снимков снизу, а не равенство (согласовано с владельцем в чате). - Новые коды вне плана — в список теста, а не в seed (решение по seed — владельцу, #28). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
aep added 1 commit 2026-10-07 04:18:59 +03:00
- test_mapping_golden: число снимков проверяется снизу (MIN_SNAPSHOTS = 113: rb 42, schastl 30, osv-dkb 22,
  synthetic 19), новые снимки fixtures проходят те же инварианты и не ломают тест; известные коды вне плана
  счетов — явный список KNOWN_OUT_OF_PLAN (60.АВ и 10 субсчетов 76 пакета ДКБ), новый код по-прежнему валит тест.
- test_consolidation_fixtures: UNMAPPED_TOTAL 1381 → 1379 — две строки свода РБ находят контрагента по ИНН из
  названия (tabular-parser #15).

Маппинг ядра без изменений: 113 снимков, 129 документов, 24 384 строки за ~7 с, все инварианты выполняются.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
aep merged commit b89d7d9322 into main 2026-10-07 06:50:14 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/arm-core#35
No description provided.