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

43 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Фаза 56. Слои одной пачкой
## Зависимости
Нет. Запреты уже размазаны по четырём тестовым проектам.
## Зачем
Инвариант 4 и таблица в [`projects.md`](../design/projects.md) должны ломаться одним красным
тестом, а не «забыли дописать пятую копию». Content и Protocol сейчас молчат.
## Задачи
- [ ] Проект `tests/HSchool.Architecture.Tests` в solution, `IsTestProject`, без AppHost и без
нового NuGet. Ссылки на Protocol, Content, People, Schedule, Ai, Simulation
- [ ] Тесты ссылок: каждая библиотека из таблицы в [`craft.md`](../design/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`. Не бампить протокол, не трогать сейв.