feat: i18n 10 languages + About section + deploy fix#114
Merged
Conversation
17 tasks
- fix(a11y): add onKeyDown + tabIndex=0 to LanguageSelector option <li> Fixes SonarCloud bug: 'Visible non-interactive element with click handler must have keyboard listener' (Reliability B → A) - test(coverage): add errorMessages.test.ts (covers 23 previously uncovered lines across all error pattern branches) - test(coverage): add WizardSteps3to8.test.tsx smoke tests for Steps 3-8 (covers i18n t() calls added in feature branch) - test(coverage): add keyboard selection tests to LanguageSelector (Enter / Space key, tabIndex assertion) - test(coverage): add localStorage catch-block tests to i18n.test.ts (detectLocale + changeLanguage error paths) - test(coverage): add translation key parity tests for es, nl, pt-BR, ja, pl, sv locales - test(backend): add test_logs_routes.py for GET /api/logs/backend (200, plain-text, content-disposition, empty-buffer placeholder) Coverage: 64.4% → target ≥80% | Tests: 540 → 601 frontend, 1164 backend
- fix(db): set PRAGMA journal_mode=WAL and busy_timeout=5000 in BaseRepository.initialize() to prevent SQLITE_BUSY errors under concurrent access (regression test test_wal_mode_enabled) - docs(openapi): add /api/bug-report POST path and BugReportRequest / BugReportResponse schemas to openapi.yaml (contract test test_yaml_has_all_live_paths)
…ection get_log_entries() returns a plain list; replace .get_entries() method call with [-100:] slice. Also includes black-formatted client_adapter.py.
…ex check Use '# fmt: skip' so black does not wrap the asyncio.to_thread() call across multiple lines. The regression test test_all_bose_methods_use_to_thread uses re.search() which requires the pattern 'asyncio.to_thread(self._client.X' to appear on a single line.
The sonar job in ci.yml must run on PRs to analyze coverage and upload results to SonarCloud. Without pull_request trigger, SonarCloud has no analysis for the PR commit and the quality gate status remains pending, blocking the PR merge.
The sonar job downloads 'backend-coverage' and 'frontend-coverage' artifacts and expects coverage.xml and lcov.info respectively. The previous upload steps only saved JSON summary files, so SonarCloud had no coverage data and could not calculate new-code coverage (resulting in stale 64.4% from old analysis). Fix: include the actual coverage report files in the uploaded artifacts.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
This PR implements the two most-requested features from the community and includes several improvements developed over the past sprint.
About Section (closes #102)
i18n – 10 Language Support (closes #109)
eact-i18next with detectLocale() and changeLanguage()