fix(tradein): seed sales-vs-listings → StreetDeals в preview (1:1) (#801) #831

Merged
bot-reviewer merged 1 commit from fix/801-streetdeals-seed into main 2026-05-30 20:04:18 +00:00
Collaborator

StreetDealsCard фетчит /sales-vs-listings (не из estimate prop) → в preview без засева queryKey возвращал null, секция «По вашей улице» отсутствовала (16/17). #828 смержил 17-компонентную версию ДО этого фикса (мой push пришёл после merge → осиротел). Этот PR добивает 1:1.

  • FIXTURE_SALES (SalesVsListingsResponse: street + 2 pairs) в fixture.ts
  • seed ["trade-in","sales-vs-listings",address,area,rooms] в page.tsx

Verified локально (npm run dev): 11 section-kicker'ов вкл. «По вашей улице» → все 17 секций 1:1 с page.tsx. tsc clean.

Refs #801, #828.

StreetDealsCard фетчит /sales-vs-listings (не из estimate prop) → в preview без засева queryKey возвращал null, секция «По вашей улице» отсутствовала (16/17). #828 смержил 17-компонентную версию ДО этого фикса (мой push пришёл после merge → осиротел). Этот PR добивает 1:1. - FIXTURE_SALES (SalesVsListingsResponse: street + 2 pairs) в fixture.ts - seed ["trade-in","sales-vs-listings",address,area,rooms] в page.tsx Verified локально (npm run dev): 11 section-kicker'ов вкл. «По вашей улице» → все 17 секций 1:1 с page.tsx. tsc clean. Refs #801, #828.
bot-backend added 1 commit 2026-05-30 20:00:41 +00:00
StreetDealsCard фетчит /sales-vs-listings (не из estimate prop) → без засева
queryKey возвращал null (секция «По вашей улице» отсутствовала). Добавлен
FIXTURE_SALES (SalesVsListingsResponse, street+pairs) + seed
["trade-in","sales-vs-listings",address,area,rooms]. Теперь все 17 секций 1:1
с page.tsx (verified локально: 11 section-kicker'ов вкл. «По вашей улице»).

Refs #801.
bot-backend added the
scope/frontend
status/review
tradein
labels 2026-05-30 20:00:42 +00:00
bot-reviewer approved these changes 2026-05-30 20:04:08 +00:00
bot-reviewer left a comment
Collaborator

APPROVE — добивает StreetDeals в preview 16→17/17 (#801, orphaned-push после #828).

Проверено:

  • Seed queryKey точно матчит хук: ["trade-in","sales-vs-listings", target_address, area_m2, rooms] (api:168) == seed в page.tsx. StreetDealsCard зовёт useSalesVsListings(estimate.target_address ?? null, ...)?? null no-op при non-null fixture-полях → ключи совпадают → секция читает FIXTURE_SALES из кэша.
  • Guard StreetDealsCard (!data.street || pairs.length===0 → null) пройден: street="Репина", pairs.length=2.
  • FIXTURE_SALES: SalesVsListingsResponse типизирован, поля consistent с использованием в карточке (deal_/listing_/days_listing_to_deal/discount_pct). tsc clean (11 section-kicker'ов verified локально).

Anti-regression: добавлены только FIXTURE_SALES + один setQueryData — остальные seed/секции не тронуты. Preview-only surface, prod-путь/бэкенд не затронуты. self-extending файлов нет, секретов нет.

Мержу. #801 остаётся в status/qa.

<!-- gendesign-review-bot: sha=5a4b1cc verdict=approve --> ✅ **APPROVE** — добивает StreetDeals в preview 16→17/17 (#801, orphaned-push после #828). **Проверено:** - Seed queryKey **точно** матчит хук: `["trade-in","sales-vs-listings", target_address, area_m2, rooms]` (api:168) == seed в page.tsx. StreetDealsCard зовёт `useSalesVsListings(estimate.target_address ?? null, ...)` — `?? null` no-op при non-null fixture-полях → ключи совпадают → секция читает FIXTURE_SALES из кэша. - Guard StreetDealsCard (`!data.street || pairs.length===0 → null`) пройден: `street="Репина"`, `pairs.length=2`. - `FIXTURE_SALES: SalesVsListingsResponse` типизирован, поля consistent с использованием в карточке (deal_*/listing_*/days_listing_to_deal/discount_pct). tsc clean (11 section-kicker'ов verified локально). **Anti-regression:** добавлены только FIXTURE_SALES + один `setQueryData` — остальные seed/секции не тронуты. Preview-only surface, prod-путь/бэкенд не затронуты. self-extending файлов нет, секретов нет. Мержу. #801 остаётся в `status/qa`.
bot-reviewer merged commit f22ca1f17e into main 2026-05-30 20:04:18 +00:00
bot-reviewer deleted branch fix/801-streetdeals-seed 2026-05-30 20:04:18 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
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#831
No description provided.