Files
h-school/docs/phases/02-people/reviewed.md
T

3.1 KiB
Raw Blame History

Журнал ревью

Сводка: ../reviewed.md. Индекс среза: README.md.

Срез 2. Люди

  • Фазы: 59
  • Проверен на: bdb1253, 2026-08-20
  • Пути: src/HSchool.People, src/HSchool.Content/PeopleDefs.cs, src/HSchool.Simulation/RosterSpawner.cs, src/HSchool.Simulation/School.cs, src/HSchool.Server/Api/SchoolEndpoints.cs, src/HSchool.Server/Game/PersonCardReader.cs, src/HSchool.Server/Game/SchoolWorker.cs, src/HSchool.Client/src/ui/peoplePanel.ts, src/HSchool.Client/src/ui/personCard.ts, tests/HSchool.People.Tests, tests/HSchool.Content.Tests/PeopleDefTests.cs, tests/HSchool.Simulation.Tests/PeopleInSchoolTests.cs, tests/HSchool.AppHost.Tests/PeopleApiTests.cs, tests/HSchool.AppHost.Tests/SchoolSeedTests.cs
  • Итог: обещания фаз 5–9 целы; починены два API-теста, дописан один на reload после набора

Что подтверждено:

  • Дефы человека: разбор, наследование, патч, неизвестная ссылка, склонение, мод со своим набором.
  • Генератор: шесть тестов списка фазы, без Arch/ASP.NET/DateTime.Now. Неполные семьи 5–10%. Сид — поле школы, не school.Id; хостовые тесты, которым нужен состав, передают сид явно.
  • Одиннадцать кабинетов, сущности в World, PersistPeople только при смене состава. Штат при создании пуст — это фаза 11.
  • Список с опубликованного снимка, карточка через TaskCompletionSource. Фильтры, пейджер, семейные ссылки, всё через t(...). Вкладка рядом с картой, не нижний ряд — так записано в фазе 8 и в ../../design/02-people/people.md.
  • Выпуск старшей имеющейся, вместимость, семьи через поколения, reload после набора.

Дописано:

  • PeopleApiTests.ReloadAfterTheYearlyIntake_RestoresTheNewComposition — ждёт 1 сентября и требует состав после набора, отличный от исходного (детерминизм от сида иначе скрыл бы потерянный файл).

Исправлено:

  • Card_IncludesFamilyAndLiveNeeds брал People[0] и требовал двух родителей. Состав зависит от сида; на чистом клоне первый ученик иногда из неполной семьи. Теперь ищет ученика с матерью и проверяет диапазон.
  • List_SortsBySurname требовал ordinal-порядок, сервер ставит Ё на место Е. Совпадали, пока в core не было фамилий на Ё.