Seed Test Fixtures

Воспроизводимый набор тестовых данных catalog + warehouse для главной тестовой франшизы. Применяется командой /seed-test (см. skill) или вручную через bash erp-infrastructure/seed/run-seed.sh.

Зачем

Раньше тестовое наполнение собиралось руками через UI — результат непредсказуем, при сбросе тестовой БД терялись все наработки. С seed:

  • Воспроизводимо. Каждый прогон даёт идентичное состояние.
  • Cross-service consistency. Catalog и Warehouse наполняются с одинаковыми UUID — техкарты привязываются к товарам без FK.
  • Reset-on-demand. При засорении тестовой БД достаточно одной команды чтобы откатиться к baseline.

Состав (что появится после прогона)

Кухонные станции (3)

ИмяDefaultyellow / red threshold
Горячий цех5 / 0 мин
Бар3 / 0 мин
Холодный цех5 / 0 мин

Категории (8, с вложенностью)

Холодильник
├── Вода
└── Газировка
Кухня
├── Бургеры
└── Пиццы
Кофе
Снэки

Products (6)

ИмяТипКатегорияКухняЦенаМодификаторы
Бургер классическийdishБургерыГорячий цех450 ₽Прожарка (structural), Соус (free)
Пицца ПепперониdishПиццыГорячий цех650 ₽Размер (structural), Доп. ингр (free)
ЛаттеdishКофеБар250 ₽Объём (structural)
Вода Аква Минерале 0.5 лgoodВода80 ₽
Сок Добрый яблочный 0.3 лgoodВода120 ₽
Чипсы Lays Сметана и зелень 81 гgoodСнэки150 ₽

Modifier groups + опции (5 + 11)

ГруппаТипОпцииДоплата
Степень прожаркиstructuralMedium / Well-done0 / 0
Соус для бургераfreeСырный / Песто50 / 60
Размер пиццыstructural30 см / 40 см0 / 200
Доп. ингредиентыfreeДоп. сыр / Грибы100 / 80
Объёмstructural250 / 350 / 450 мл0 / 50 / 100

Tech cards (3)

  • Бургер — выход 350 г, 6 ингредиентов (котлета, булка, сыр, помидор, огурец, лук).
  • Пицца Пепперони — выход 450 г (30 см), 5 ингредиентов (тесто, моцарелла, пепперони, соус, базилик).
  • Латте — выход 350 мл, 3 ингредиента (зерна кофе, молоко, вода).

Default price list

«Стандартный» (is_default=true) — все 6 products + 11 опций модификаторов с проставленными ценами.

Что seed НЕ делает

  • ❌ Не создаёт стоп-листы.
  • ❌ Не привязывает категории к расписаниям меню (menu_availability).
  • ❌ Не создаёт внешние меню /r/{slug} — после seed нужно их пересоздать в админке если они ссылались на удалённые product_id.
  • ❌ Не трогает store-data (магазины, зоны доставки) — они не входят в catalog.
  • ❌ Не создаёт сотрудников, роли, смены, заказы — это runtime data.

UAT-чеклист

После применения seed проверь:

#ГдеЧто должно быть
1Админка → Каталог → КатегорииДерево из 4 root + 4 дочерних
2Админка → Каталог → Товары6 строк, у каждого правильная категория
3Бургер → Edit2 модификатор-группы (structural + free)
4Пицца → Edit2 модификатор-группы (structural + free)
5Латте → Edit1 modifier-группа (structural объём)
6Прейскуранты«Стандартный» (default), 6 product-строк + 11 option-строк
7Каталог → Кухонные станции3 строки
8Warehouse → Техкарты3 строки (Бургер/Пицца/Латте)
9Warehouse → Ингредиенты14 строк
10POS Desktop (PIN-логин → Главная)6 товаров в каталоге кассы
11KDS appсвежий заказ Бургера сразу появляется в «Горячем цехе»

Связи

  • Deployment Runbook
  • erp-infrastructure/seed/README.md — UUID-таблица и команды
  • Skill /seed-test.claude/skills/seed-test/SKILL.md