[qa][analytics] Smoke страницы аналитики (Site Finder) — рендер + endpoints + console/5xx #879

Closed
opened 2026-05-31 09:27:48 +00:00 by bot-analyst · 1 comment
Collaborator

QA smoke. Это GenDesign Site Finder (основной сайт gendsgn.ru, basic_auth) — НЕ tradein. Исполняемый чек. Расхождение → заводи bug-issue (scope/*,status/ready,priority/*) + коммент сюда, НЕ чини сам.

Задача

Прогнать smoke по разделу аналитики и её саб-маршрутам на проде (gendsgn.ru, basic_auth) через mcp__playwright__* + curl: страницы рендерятся без белого экрана/error-boundary, ключевые analytics-endpoints отдают 200 + непустой JSON, в console нет ошибок, в GlitchTip нет новых 5xx.

Контекст (verified чтением кода forgejo/main 2026-05-31 — endpoints/routes реальные, не угадка)

Фронт-маршруты (frontend/src/app/analytics/):

  • /analytics — дашборд (page.tsx).
  • /analytics/recommend — рекомендации mix (recommend/page.tsx).
  • /analytics/developers — лидерборд застройщиков (developers/page.tsx).
  • /analytics/prinzip — PRINZIP-дашборд (prinzip/page.tsx).
  • /analytics/objects/[id] — карточка объекта/ЖК (objects/[id]/page.tsx).

Backend endpoints под /api/v1/analytics (mount backend/app/main.py:144; роуты analytics.py, verified):

  • GET /sverdl/market-pulse (:30), /sverdl/districts (:51), /sverdl/quartirography (:36), /sverdl/pipeline (:45), /sverdl/yandex-listings (:57)
  • GET /developers/top (:66), /developers/history (:75), /developers/{developer_id} (:87), /developers/{developer_id}/portfolio (:99)
  • GET /prinzip/insights (:214), /prinzip/districts (:220), /prinzip/objects (:225)
  • GET /object/{obj_id} (:151) + /full (:163) /quartirography (:175) /checks (:184) /documents (:193) /sale_graph (:111) /sales_agg (:121) /infrastructure (:130) /photos (:141) /buildings (:202)
  • POST /recommend/mix (:238, body RecommendMixOutput-input)

Definition of Done (бинарно проверяемо — прод, basic_auth)

  • /analytics рендерится: mcp__playwright__browser_navigatehttps://gendsgn.ru/analytics → snapshot содержит контент дашборда (KPI/market-pulse/районы), НЕ белый экран и НЕ «Что-то пошло не так» (error boundary). Screenshot приложить.
  • /analytics/recommend рендерится: gendsgn.ru/analytics/recommend → виден mix-рекомендатор (слайдеры долей + результат), не пусто/не краш.
  • /analytics/developers рендерится: лидерборд застройщиков виден, не пусто.
  • /analytics/prinzip рендерится: PRINZIP-дашборд (insights/districts/objects) виден, не краш.
  • /analytics/objects/[id] рендерится: открыть карточку одного реального объекта (id взять из /prinzip/objects или /developers/{id}/portfolio ответа) → 200, контент (фото/квартирография/checks) есть.
  • Endpoints 200 + непустой JSON (curl basic_auth, каждый отдельно):
    GET /api/v1/analytics/sverdl/market-pulse, /sverdl/districts, /developers/top, /prinzip/insights, /prinzip/districts, /prinzip/objects → HTTP 200 И тело не пустой []/{} (зафиксировать по 1 ключу/длине массива из каждого).
    Для /developers/{id} + /object/{id} — id взять из /developers/top и /prinzip/objects соответственно → 200.
    POST /api/v1/analytics/recommend/mix (валидный body, см. фронт recommend/page.tsx shape) → 200.
  • Console: mcp__playwright__browser_console_messages на /analytics + /analytics/recommend + /analytics/objects/[id] → 0 ошибок уровня error (warnings допустимы, зафиксировать если есть).
  • GlitchTip: 0 новых 5xx от /api/v1/analytics/* или /api/v1/parcels/* за время прогона (mcp__glitchtip__glitchtip_issues).

Не делать

  • НЕ чинить найденные дефекты — заводить bug-issue + коммент сюда. Известные открытые Site-Finder баги (если воспроизводятся — прокомментировать в них, НЕ дублировать): #232 (ЗОУИТ «нет пересечений»), #236 (ипотечная ставка дата на recommend), #237 (нет last_updated индикатора).
  • НЕ трогать tradein (/trade-in/*) — отдельный проект, отдельный smoke (#736).
  • НЕ перепроверять unit-тесты бэкенда — здесь только прод-интеграция.

Risk

Read-only smoke (только POST /recommend/mix — без сайд-эффектов, чистый расчёт). basic_auth-креды — vault meta/00_credentials.md (резолвер/qa-окно).

Связано

Site Finder analytics раздел. Known bugs #232/#236/#237. Прод gendsgn.ru (НЕ /trade-in). Эндпоинты verified analytics.py + frontend/src/lib/*.ts 2026-05-31.

> QA smoke. Это **GenDesign Site Finder** (основной сайт `gendsgn.ru`, basic_auth) — НЕ tradein. Исполняемый чек. Расхождение → заводи bug-issue (`scope/*`,`status/ready`,`priority/*`) + коммент сюда, НЕ чини сам. ## Задача Прогнать smoke по разделу аналитики и её саб-маршрутам на проде (`gendsgn.ru`, basic_auth) через `mcp__playwright__*` + curl: страницы рендерятся без белого экрана/error-boundary, ключевые analytics-endpoints отдают 200 + непустой JSON, в console нет ошибок, в GlitchTip нет новых 5xx. ## Контекст (verified чтением кода forgejo/main 2026-05-31 — endpoints/routes реальные, не угадка) **Фронт-маршруты** (`frontend/src/app/analytics/`): - `/analytics` — дашборд (`page.tsx`). - `/analytics/recommend` — рекомендации mix (`recommend/page.tsx`). - `/analytics/developers` — лидерборд застройщиков (`developers/page.tsx`). - `/analytics/prinzip` — PRINZIP-дашборд (`prinzip/page.tsx`). - `/analytics/objects/[id]` — карточка объекта/ЖК (`objects/[id]/page.tsx`). **Backend endpoints** под `/api/v1/analytics` (mount `backend/app/main.py:144`; роуты `analytics.py`, verified): - `GET /sverdl/market-pulse` (:30), `/sverdl/districts` (:51), `/sverdl/quartirography` (:36), `/sverdl/pipeline` (:45), `/sverdl/yandex-listings` (:57) - `GET /developers/top` (:66), `/developers/history` (:75), `/developers/{developer_id}` (:87), `/developers/{developer_id}/portfolio` (:99) - `GET /prinzip/insights` (:214), `/prinzip/districts` (:220), `/prinzip/objects` (:225) - `GET /object/{obj_id}` (:151) + `/full` (:163) `/quartirography` (:175) `/checks` (:184) `/documents` (:193) `/sale_graph` (:111) `/sales_agg` (:121) `/infrastructure` (:130) `/photos` (:141) `/buildings` (:202) - `POST /recommend/mix` (:238, body `RecommendMixOutput`-input) ## Definition of Done (бинарно проверяемо — прод, basic_auth) - [ ] **`/analytics` рендерится**: `mcp__playwright__browser_navigate` → `https://gendsgn.ru/analytics` → snapshot содержит контент дашборда (KPI/market-pulse/районы), НЕ белый экран и НЕ «Что-то пошло не так» (error boundary). Screenshot приложить. - [ ] **`/analytics/recommend` рендерится**: `gendsgn.ru/analytics/recommend` → виден mix-рекомендатор (слайдеры долей + результат), не пусто/не краш. - [ ] **`/analytics/developers` рендерится**: лидерборд застройщиков виден, не пусто. - [ ] **`/analytics/prinzip` рендерится**: PRINZIP-дашборд (insights/districts/objects) виден, не краш. - [ ] **`/analytics/objects/[id]` рендерится**: открыть карточку одного реального объекта (id взять из `/prinzip/objects` или `/developers/{id}/portfolio` ответа) → 200, контент (фото/квартирография/checks) есть. - [ ] **Endpoints 200 + непустой JSON** (curl basic_auth, каждый отдельно): `GET /api/v1/analytics/sverdl/market-pulse`, `/sverdl/districts`, `/developers/top`, `/prinzip/insights`, `/prinzip/districts`, `/prinzip/objects` → HTTP 200 И тело не пустой `[]`/`{}` (зафиксировать по 1 ключу/длине массива из каждого). Для `/developers/{id}` + `/object/{id}` — id взять из `/developers/top` и `/prinzip/objects` соответственно → 200. `POST /api/v1/analytics/recommend/mix` (валидный body, см. фронт `recommend/page.tsx` shape) → 200. - [ ] **Console**: `mcp__playwright__browser_console_messages` на `/analytics` + `/analytics/recommend` + `/analytics/objects/[id]` → 0 ошибок уровня `error` (warnings допустимы, зафиксировать если есть). - [ ] **GlitchTip**: 0 новых 5xx от `/api/v1/analytics/*` или `/api/v1/parcels/*` за время прогона (`mcp__glitchtip__glitchtip_issues`). ## Не делать - НЕ чинить найденные дефекты — заводить bug-issue + коммент сюда. Известные открытые Site-Finder баги (если воспроизводятся — прокомментировать в них, НЕ дублировать): #232 (ЗОУИТ «нет пересечений»), #236 (ипотечная ставка дата на recommend), #237 (нет last_updated индикатора). - НЕ трогать tradein (`/trade-in/*`) — отдельный проект, отдельный smoke (#736). - НЕ перепроверять unit-тесты бэкенда — здесь только прод-интеграция. ## Risk Read-only smoke (только `POST /recommend/mix` — без сайд-эффектов, чистый расчёт). basic_auth-креды — vault `meta/00_credentials.md` (резолвер/qa-окно). ## Связано Site Finder analytics раздел. Known bugs #232/#236/#237. Прод `gendsgn.ru` (НЕ `/trade-in`). Эндпоинты verified `analytics.py` + `frontend/src/lib/*.ts` 2026-05-31.
bot-analyst added the
priority/p3
scope/qa
status/ready
labels 2026-05-31 09:29:51 +00:00
Author
Collaborator

Закрываю — фокус только на tradein (решение Anton 2026-05-31). Site Finder сейчас не в работе. Спек сохранён в истории issue — если Site Finder вернётся в скоуп, реоупенить + status/ready.

Закрываю — фокус только на tradein (решение Anton 2026-05-31). Site Finder сейчас не в работе. Спек сохранён в истории issue — если Site Finder вернётся в скоуп, реоупенить + `status/ready`.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#879
No description provided.