mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
Four launch gates for v2.0.0: 1. Catalog integrity (catalog-integrity.test.ts): asserts every TOOLS entry is fully wired end to end (API route + frontend registry + display mode + process fn or REGISTRY_EXEMPT). Count checked dynamically against TOOLS.length. All 157 tools pass. 2. i18n cross-locale parity (i18n-parity.test.ts): asserts every locale in SUPPORTED_LOCALES has the same key set as en.ts. Found and fixed a real bug: zh-CN and pt-BR exported only a camelCase named export (zhCN, ptBR) with no default export, so loadTranslations silently fell back to English for Chinese Simplified and Brazilian Portuguese users. Fixed by adding export default to both files. All 20 non-en locales now pass parity. 3. Cross-modality smoke (cross-modality-smoke.test.ts): one fast tool per modality (rotate/image, mute-video/video, convert-audio/audio, rotate-pdf/document, csv-json/data) plus an auth gate. Tools needing ffmpeg or qpdf are gated with skipIf. Ship/no-ship signal. 4. Migration launch gate: extended migrate-from-sqlite.test.ts with a representative 1.x SQLite database (3 users, 3 teams, 3 settings, 2 roles, 2 sessions, 2 API keys, 2 pipelines, 4 jobs, 4 audit entries, 4 user files) covering boolean/timestamp/JSON/NULL type conversions, column remapping (input_files->input_refs, progress real->jsonb), and multi-row round-trip verification. 9 new test cases. Parity: 13260 passed, 0 dropped.