3.3 KiB
3.3 KiB
Фаза 25. Золотые файлы и мелкие долги
Зависимости
Нет. Можно вести параллельно с 22–24.
Зачем
Две регрессии сейчас ловятся только глазами: молчаливая смена генерации людей и сейв, который перестал грузиться после нового поля. Обе дешёвы в защите и дороги в разборе постфактум.
Задачи
- Отпечаток ростера файлом в фикстурах: фиксированные сид, карта, набор имён и родной язык
- Тест печатает первую несовпавшую строку, а не «строки различаются»
- Правило записано рядом с фикстурой: отпечаток обновляется в том же коммите, что и генерация, и коммит объясняет, что поменялось
- Файл сейва текущего формата в фикстурах хоста; тест поднимает из него школу
- Рядом с ним — файл сейва без новых полей, чтобы «отсутствующее поле имеет разумное значение» проверялось, а не подразумевалось
- Форма голодного дня закрепляется тестом: приходят сытыми, к своей смене около 0.4, уходят голодными, к утру снова полны. Числа подобраны замером и сейчас ничем не защищены
uncoveredв staffing говорит, скольких учителей не хватает предмету- Клиент показывает это число в списке непокрытых, через
t(...)
Тесты, без которых фаза не закрыта
- Отпечаток ростера совпадает с файлом
- Школа поднимается из сохранённого файла: те же люди, то же время, тот же штат
- Сейв без поля родного языка грузится и не перетасовывает набор
- Кривая голода за учебный день держится в заявленных границах
PrimarySchoolна ванильной карте требует трёх учителей, и ответ это говорит- Назначение второго учителя уменьшает нехватку, но не закрывает её
Критерий готовности
- Изменить порядок бросков в генераторе — золотой тест краснеет
- Добавить поле в сейв — старый файл по-прежнему грузится
dotnet testи клиентскиеnpm test/run buildпроходят
Стоп
Не превращать золотой файл в снимок всего мира: отпечаток должен читаться человеком.