snipe/tests
pyr0ball dca3c3f50b feat(prefs): display.currency preference with live exchange rate conversion
- Backend: validate display.currency against 10 supported ISO 4217 codes
  (USD, GBP, EUR, CAD, AUD, JPY, CHF, MXN, BRL, INR); return 400 on
  unsupported code with a clear message listing accepted values
- Frontend: useCurrency composable fetches rates from open.er-api.com
  with 1-hour module-level cache and in-flight deduplication; falls back
  to USD display on network failure
- Preferences store: adds display.currency with localStorage fallback for
  anonymous users and localStorage-to-DB migration for newly logged-in users
- ListingCard: price and market price now convert from USD using live rates,
  showing USD synchronously while rates load then updating reactively
- Settings UI: currency selector dropdown in Appearance section using
  theme-aware CSS classes; available to all users (anon via localStorage,
  logged-in via DB preference)
- Tests: 6 Python tests for the PATCH /api/preferences currency endpoint
  (including ordering-safe fixture using patch.object on _LOCAL_SNIPE_DB);
  14 Vitest tests for convertFromUSD, formatPrice, and formatPriceUSD
2026-04-20 11:02:59 -07:00
..
db feat: snipe beta backlog batch (tickets #22/#28/#30/#34/#35/#36/#37/#38) 2026-04-13 19:32:50 -07:00
platforms feat(search): normalize eBay listing + checkout URLs as item lookup 2026-04-20 10:49:17 -07:00
test_tasks feat: snipe beta backlog batch (tickets #22/#28/#30/#34/#35/#36/#37/#38) 2026-04-13 19:32:50 -07:00
trust test: aggregator coverage for zero_feedback, long_on_market, significant_price_drop 2026-04-16 13:14:20 -07:00
ui feat: snipe beta backlog batch (tickets #22/#28/#30/#34/#35/#36/#37/#38) 2026-04-13 19:32:50 -07:00
__init__.py feat: scaffold snipe repo 2026-03-25 13:08:54 -07:00
test_api_search_build.py feat: POST /api/search/build endpoint with tier gate and category cache wiring 2026-04-14 11:46:15 -07:00
test_async_search.py feat(search): async endpoint + SSE streaming for initial results 2026-04-20 10:57:32 -07:00
test_ebay_categories.py feat: community category federation in EbayCategoryCache.refresh() 2026-04-14 11:38:12 -07:00
test_feedback.py feat: preferences store, community signals, a11y + API fixes 2026-04-14 16:15:09 -07:00
test_preferences_currency.py feat(prefs): display.currency preference with live exchange rate conversion 2026-04-20 11:02:59 -07:00
test_query_translator.py feat: QueryTranslator with domain-aware system prompt and category hint injection 2026-04-14 11:43:19 -07:00
test_tiers.py feat: add llm_query_builder tier gate (paid+) to tiers.py and SessionFeatures 2026-04-14 11:44:53 -07:00