Files
h-school/docs/phases/10-craft/56-architecture-tests.md

2.5 KiB
Raw Permalink Blame History

Фаза 56. Слои одной пачкой

Зависимости

Нет. Запреты уже размазаны по четырём тестовым проектам.

Зачем

Инвариант 4 и таблица в projects.md должны ломаться одним красным тестом, а не «забыли дописать пятую копию». Content и Protocol сейчас молчат.

Задачи

  • Проект tests/HSchool.Architecture.Tests в solution, IsTestProject, без AppHost и без нового NuGet. Ссылки на Protocol, Content, People, Schedule, Ai, Simulation
  • Тесты ссылок: каждая библиотека из таблицы в craft.md — этап A
  • Тесты исходников: в src/HSchool.{Protocol,Content,People,Schedule,Ai,Simulation} нет DateTime.Now / DateTime.UtcNow
  • Удалить копипасты Assembly_DoesNotReference* и Sources_DoNotUseWallClock из People, Ai, Schedule, Simulation (остальные факты тех файлов не трогать)
  • Testing policy в AGENTS.md: слои — HSchool.Architecture.Tests, не хост
  • README: школа не «ещё пустая»; потолок create — слоты игрока, не «шесть»

Тесты, без которых фаза не закрыта

  • Protocol не ссылается на Arch, ASP.NET, Sockets, Content, Simulation
  • Content не ссылается на Arch, ASP.NET, Sockets, Protocol, Simulation
  • People, Schedule, Ai не ссылаются на Arch, ASP.NET, Sockets
  • Simulation не ссылается на ASP.NET и Sockets (Arch — можно)
  • Исходники шести библиотек выше не содержат DateTime.Now / DateTime.UtcNow
  • В People/Ai/Schedule/Simulation.Tests больше нет этих двух фактов

Критерий готовности

  • dotnet test tests/HSchool.Architecture.Tests проходит
  • Добавить using System.Net.Http в HSchool.Content — слой красный
  • Старые проекты тестов без этих фактов по-прежнему собираются

Стоп

Не подключать NetArchTest. Не гонять AppHost. Не резать SchoolWorker. Не ссылаться на HSchool.Server. Не бампить протокол, не трогать сейв.