Files
OmniRoute/tests
diegosouzapw a9a663cc40 refactor(i18n): migrate hardcoded UI strings to next-intl t() in playground + search-tools
Closes Gap 2 from code review #2: ExportCodeModal, BuildTab, PresetPicker,
StudioTopBar, SearchToolsTopBar, SearchConceptCard and ProviderCatalog now
use useTranslations() from next-intl for all user-facing strings.

The F9 i18n PR (566ebb953) added the keys but several legacy hardcoded
strings still slipped through. This change wires them up and fixes
pt-BR translations that were leaking English ("Cancel" → "Cancelar",
"Save" → "Salvar", "Copy" → "Copiar", "Clear All" → "Limpar tudo", etc.).

New keys added in both pt-BR.json and en.json under the `playground`
namespace:
- close, closeExportModal, exportShort
- exportRealKeyWarning, placeholderHintPrefix, placeholderHintSuffix
- copyLangCode (with {language} placeholder)
- loadingPresets, loadPresetPlaceholder

Test updates:
- 7 UI test files: mocks updated for next-intl (useTranslations) and
  assertions updated to match the i18n key-as-text returned by the mock.
- PlaygroundStudio test: 2 tests previously checked for a "F7 implementation
  pending" placeholder which no longer exists (F7+F9 fully implemented those
  tabs) — assertions now verify the tab becomes active instead.
- PlaygroundConfigPane test: endpoint select count bumped from 10 to 13
  (D4-rev2) with a more robust selector that finds the endpoint select
  regardless of PresetPicker's load-preset select position.

Validation:
- npm run typecheck:core: clean
- npm run lint: 0 errors (warnings pre-existing)
- npx vitest run tests/unit/ui: 245 tests pass (26 files)
- node --test tests/unit/playground-*.test.ts tests/unit/search-tools-*.test.ts
  tests/unit/db-playground-presets.test.ts: 122 tests pass
2026-05-28 17:20:10 -03:00
..
2026-05-23 01:46:59 -03:00
2026-05-10 00:55:06 -03:00