# Проверка локального контура Эта страница описывает, как быстро убедиться, что локальные `backend`, `cabinet`, БД и тестовые данные работают корректно. ## Подготовка Запустите локальный контур и соберите ассеты cabinet: ```bash make local-up make local-assets ``` Если нужно заново пересоздать тестовые данные: ```bash make local-seed ``` ## Автоматическая smoke-проверка Основная команда проверки: ```bash make local-smoke ``` Она проверяет: - Swagger backend: `http://localhost:8081/docs`; - Swagger cabinet: `http://localhost:8082/api/swagger`; - backend авторизацию через JWT; - backend справочники филиалов, отделений, врачей и прайса; - cabinet страницу логина; - cabinet авторизацию тестовым пользователем; - cabinet главную страницу после логина; - cabinet API баннера, прайса и врачей. Успешный результат выглядит так: ```text == Backend == OK backend swagger UI (200) OK backend swagger JSON (200) OK backend login OK backend filial list OK backend department list OK backend specialist list OK backend price list == Cabinet == OK cabinet login page (200) OK cabinet swagger UI (200) OK cabinet swagger JSON (200) OK cabinet login response OK cabinet authenticated home (200) OK cabinet banner API OK cabinet price departments API OK cabinet doctors API Local smoke test passed. ``` ## Тестовые пользователи Backend API: - login: `local.backend@example.test` - password: `local-password` - uid: `100001` - region: `91` - роли: `ROLE_USER`, `ROLE_ADMIN` Cabinet: - login: `local.cabinet@example.test` - password: `local-password` - uid: `200001` - роли: `ROLE_USER`, `ROLE_ADMIN` ## Ручная проверка в браузере 1. Откройте `http://localhost:8081/docs`. Должна открыться Swagger UI backend. 2. Откройте `http://localhost:8082/api/swagger`. Должна открыться Swagger UI cabinet. 3. Откройте `http://localhost:8082/login`. Должна открыться страница входа без ошибки `500`. 4. Войдите в cabinet: - email: `local.cabinet@example.test`; - password: `local-password`. 5. После входа должна открыться главная cabinet: `http://localhost:8082/`. 6. Откройте публичные API cabinet: - `http://localhost:8082/api/banner/91`; - `http://localhost:8082/api/pricelist/departments`; - `http://localhost:8082/api/doctors/91`. ## Ручная проверка backend API Получить JWT: ```bash TOKEN=$(curl -sS \ -X POST http://localhost:8081/user/login \ -H 'Content-Type: application/json' \ --data '{"username":"local.backend@example.test","password":"local-password"}' \ | python3 -c 'import sys,json; print(json.load(sys.stdin)["token"])') ``` Проверить текущего пользователя: ```bash curl -sS http://localhost:8081/user/ \ -H "Authorization: Bearer $TOKEN" \ | python3 -m json.tool ``` Ожидаемый смысл ответа: `successful: true`, `uid: 100001`, `regionId: 91`. Проверить филиалы: ```bash curl -sS 'http://localhost:8081/filial/list?regionId=91' \ | python3 -m json.tool ``` В ответе должен быть филиал `Сова Local`. Проверить отделения: ```bash curl -sS http://localhost:8081/department/list \ | python3 -m json.tool ``` В ответе должно быть отделение `Терапия`. Проверить врачей: ```bash curl -sS 'http://localhost:8081/specialist/list?regionId=91' \ | python3 -m json.tool ``` В ответе должен быть врач `Иванов Иван Иванович` с alias `ivanov-ivan`. Проверить прайс: ```bash curl -sS http://localhost:8081/pricelist/list \ | python3 -m json.tool ``` В ответе должна быть услуга `Прием терапевта` с локальной ценой. ## Ручная проверка cabinet API Проверить баннер региона: ```bash curl -sS http://localhost:8082/api/banner/91 \ | python3 -m json.tool ``` Ожидается JSON с `active: true`. Проверить группы прайса: ```bash curl -sS http://localhost:8082/api/pricelist/departments \ | python3 -m json.tool ``` В ответе должна быть группа `Консультации`. Проверить список врачей: ```bash curl -sS http://localhost:8082/api/doctors/91 \ | python3 -m json.tool ``` В ответе должен быть врач `Иванов Иван Иванович`, отзывы и прайс. ## Что делать при ошибках Если `cabinet /login` отдает `500` с ошибкой про `public/build/entrypoints.json`, соберите ассеты: ```bash make local-assets ``` Если API отдает пустые данные или ошибки типов, пересоздайте seed: ```bash make local-seed make local-smoke ``` Если контейнеры были пересозданы с нуля: ```bash make local-up make local-assets make local-smoke ```