# Test Coverage Plan (Filipino) 🌐 **Languages:** 🇺🇸 [English](../../../../ops/COVERAGE_PLAN.md) · 🇪🇹 [am](../../../am/docs/ops/COVERAGE_PLAN.md) · 🇸🇦 [ar](../../../ar/docs/ops/COVERAGE_PLAN.md) · 🇦🇿 [az](../../../az/docs/ops/COVERAGE_PLAN.md) · 🇧🇬 [bg](../../../bg/docs/ops/COVERAGE_PLAN.md) · 🇧🇩 [bn](../../../bn/docs/ops/COVERAGE_PLAN.md) · 🇧🇦 [bs](../../../bs/docs/ops/COVERAGE_PLAN.md) · 🇨🇿 [cs](../../../cs/docs/ops/COVERAGE_PLAN.md) · 🇩🇰 [da](../../../da/docs/ops/COVERAGE_PLAN.md) · 🇩🇪 [de](../../../de/docs/ops/COVERAGE_PLAN.md) · 🇬🇷 [el](../../../el/docs/ops/COVERAGE_PLAN.md) · 🇪🇸 [es](../../../es/docs/ops/COVERAGE_PLAN.md) · 🇪🇪 [et](../../../et/docs/ops/COVERAGE_PLAN.md) · 🇮🇷 [fa](../../../fa/docs/ops/COVERAGE_PLAN.md) · 🇫🇮 [fi](../../../fi/docs/ops/COVERAGE_PLAN.md) · 🇫🇷 [fr](../../../fr/docs/ops/COVERAGE_PLAN.md) · 🇮🇪 [ga](../../../ga/docs/ops/COVERAGE_PLAN.md) · 🇮🇳 [gu](../../../gu/docs/ops/COVERAGE_PLAN.md) · 🇳🇬 [ha](../../../ha/docs/ops/COVERAGE_PLAN.md) · 🇮🇱 [he](../../../he/docs/ops/COVERAGE_PLAN.md) · 🇮🇳 [hi](../../../hi/docs/ops/COVERAGE_PLAN.md) · 🇭🇷 [hr](../../../hr/docs/ops/COVERAGE_PLAN.md) · 🇭🇺 [hu](../../../hu/docs/ops/COVERAGE_PLAN.md) · 🇦🇲 [hy](../../../hy/docs/ops/COVERAGE_PLAN.md) · 🇮🇩 [id](../../../id/docs/ops/COVERAGE_PLAN.md) · 🇳🇬 [ig](../../../ig/docs/ops/COVERAGE_PLAN.md) · 🇮🇹 [it](../../../it/docs/ops/COVERAGE_PLAN.md) · 🇯🇵 [ja](../../../ja/docs/ops/COVERAGE_PLAN.md) · 🇬🇪 [ka](../../../ka/docs/ops/COVERAGE_PLAN.md) · 🇰🇭 [km](../../../km/docs/ops/COVERAGE_PLAN.md) · 🇮🇳 [kn](../../../kn/docs/ops/COVERAGE_PLAN.md) · 🇰🇷 [ko](../../../ko/docs/ops/COVERAGE_PLAN.md) · 🇱🇹 [lt](../../../lt/docs/ops/COVERAGE_PLAN.md) · 🇱🇻 [lv](../../../lv/docs/ops/COVERAGE_PLAN.md) · 🇮🇳 [ml](../../../ml/docs/ops/COVERAGE_PLAN.md) · 🇮🇳 [mr](../../../mr/docs/ops/COVERAGE_PLAN.md) · 🇲🇾 [ms](../../../ms/docs/ops/COVERAGE_PLAN.md) · 🇲🇹 [mt](../../../mt/docs/ops/COVERAGE_PLAN.md) · 🇲🇲 [my](../../../my/docs/ops/COVERAGE_PLAN.md) · 🇳🇵 [ne](../../../ne/docs/ops/COVERAGE_PLAN.md) · 🇳🇱 [nl](../../../nl/docs/ops/COVERAGE_PLAN.md) · 🇳🇴 [no](../../../no/docs/ops/COVERAGE_PLAN.md) · 🇮🇳 [or](../../../or/docs/ops/COVERAGE_PLAN.md) · 🇮🇳 [pa](../../../pa/docs/ops/COVERAGE_PLAN.md) · 🇵🇱 [pl](../../../pl/docs/ops/COVERAGE_PLAN.md) · 🇵🇹 [pt](../../../pt/docs/ops/COVERAGE_PLAN.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/ops/COVERAGE_PLAN.md) · 🇷🇴 [ro](../../../ro/docs/ops/COVERAGE_PLAN.md) · 🇷🇺 [ru](../../../ru/docs/ops/COVERAGE_PLAN.md) · 🇱🇰 [si](../../../si/docs/ops/COVERAGE_PLAN.md) · 🇸🇰 [sk](../../../sk/docs/ops/COVERAGE_PLAN.md) · 🇸🇮 [sl](../../../sl/docs/ops/COVERAGE_PLAN.md) · 🇷🇸 [sr](../../../sr/docs/ops/COVERAGE_PLAN.md) · 🇸🇪 [sv](../../../sv/docs/ops/COVERAGE_PLAN.md) · 🇰🇪 [sw](../../../sw/docs/ops/COVERAGE_PLAN.md) · 🇮🇳 [ta](../../../ta/docs/ops/COVERAGE_PLAN.md) · 🇮🇳 [te](../../../te/docs/ops/COVERAGE_PLAN.md) · 🇹🇭 [th](../../../th/docs/ops/COVERAGE_PLAN.md) · 🇹🇷 [tr](../../../tr/docs/ops/COVERAGE_PLAN.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/ops/COVERAGE_PLAN.md) · 🇵🇰 [ur](../../../ur/docs/ops/COVERAGE_PLAN.md) · 🇺🇿 [uz](../../../uz/docs/ops/COVERAGE_PLAN.md) · 🇻🇳 [vi](../../../vi/docs/ops/COVERAGE_PLAN.md) · 🇳🇬 [yo](../../../yo/docs/ops/COVERAGE_PLAN.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/ops/COVERAGE_PLAN.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/ops/COVERAGE_PLAN.md) --- Huling na-update: 2026-06-28 > Katayuang sinukat noong 2026-05-13: mga linya 82.58%, mga statement 82.58%, mga function 84.23%, mga branch 75.22%. Kumpleto na ang mga Phase 1-5. Ang kasalukuyang pokus ay Phase 6 (>=85%) at Phase 7 (>=90%). ## Baseline May maraming bilang ng coverage depende sa kung paano kinukuwenta ang ulat. Para sa pagpaplano, isa lamang sa mga ito ang kapaki-pakinabang. | Sukatan | Saklaw | Mga Statement / Linya | Mga Branch | Mga Function | Mga Tala | | ------------------------- | ----------------------------------------------------------------- | --------------------: | ---------: | -----------: | --------------------------------------------------------------------- | | Legacy | Lumang `npm run test:coverage` | 79.42% | 75.15% | 67.94% | Napataas: binibilang ang mga test file at hindi kasama ang `open-sse` | | Diagnostic | Source lamang, hindi kasama ang mga test at ang `open-sse` | 68.16% | 63.55% | 64.06% | Kapaki-pakinabang lamang para ihiwalay ang `src/**` | | Inirerekomendang baseline | Source lamang, hindi kasama ang mga test at kasama ang `open-sse` | 82.58% | 75.22% | 84.23% | Ito ang baseline ng buong proyekto na dapat pahusayin | Ang inirerekomendang baseline ang bilang na dapat i-optimize. ## Mga Panuntunan - Nalalapat ang mga target ng coverage sa mga source file, hindi sa `tests/**`. - Bahagi ng produkto ang `open-sse/**` at dapat manatiling kasama sa saklaw. - Hindi dapat pababain ng bagong code ang coverage sa mga bahaging binago. - Mas piliing subukan ang gawi at mga resulta ng branch kaysa sa mga detalye ng implementasyon. - Mas piliin ang mga pansamantalang SQLite database at maliliit na fixture kaysa sa malawakang paggamit ng mga mock para sa `src/lib/db/**`. ## Kasalukuyang hanay ng mga command - `npm run test:coverage` - Pangunahing source coverage gate para sa unit test suite - Bumubuo ng `text-summary`, `html`, `json-summary`, at `lcov` - `npm run coverage:report` - Detalyadong ulat para sa bawat file mula sa pinakabagong run - `npm run test:coverage:legacy` - Para lamang sa makasaysayang paghahambing ## Mga Milestone | Phase | Target | Pokus | Katayuan | | ------- | ------------------------: | ------------------------------------------------------------------------- | ----------- | | Phase 1 | 60% mga statement / linya | Mabilis na mga pagpapahusay at coverage ng utility na mababa ang panganib | ✅ Tapos | | Phase 2 | 65% mga statement / linya | Mga pundasyon ng DB at route | ✅ Tapos | | Phase 3 | 70% mga statement / linya | Pagpapatunay ng provider at analytics ng paggamit | ✅ Tapos | | Phase 4 | 75% mga statement / linya | Mga translator at helper ng `open-sse` | ✅ Tapos | | Phase 5 | 80% mga statement / linya | Mga handler ng `open-sse` at mga branch ng executor | ✅ Tapos | | Phase 6 | 85% mga statement / linya | Mas mahihirap na edge case, kakulangan sa branch, at mga regression suite | Isinasagawa | | Phase 7 | 90% mga statement / linya | Panghuling pagsusuri, pagsasara ng mga puwang, mahigpit na ratchet | Nakabinbin | Dapat unti-unting tumaas ang mga branch at function sa bawat phase, ngunit ang pangunahing mahigpit na target ay mga statement / linya. ## Mga prayoridad na hotspot Ang mga file na ito ang may pinakamababang line coverage ngayon (< 60%) at nagbibigay ng pinakamalaking pakinabang para sa mga Phase 6-7. Binuo mula sa `coverage/coverage-summary.json` noong 2026-05-13: | # | File | Mga Line % | | --- | ------------------------------------------------------------ | ---------: | | 1 | `open-sse/services/compression/validation.ts` | 7.87% | | 2 | `src/app/api/v1/batches/route.ts` | 9.67% | | 3 | `src/app/docs/components/FeedbackWidget.tsx` | 9.80% | | 4 | `open-sse/services/compression/toolResultCompressor.ts` | 10.00% | | 5 | `src/app/docs/components/DocCodeBlocks.tsx` | 10.63% | | 6 | `open-sse/services/compression/engines/rtk/lineFilter.ts` | 10.96% | | 7 | `open-sse/services/specificityRules.ts` | 11.28% | | 8 | `src/mitm/systemCommands.ts` | 12.19% | | 9 | `open-sse/services/compression/aggressive.ts` | 12.77% | | 10 | `src/app/api/v1/batches/[id]/cancel/route.ts` | 12.98% | | 11 | `open-sse/services/compression/progressiveAging.ts` | 13.26% | | 12 | `open-sse/services/compression/engines/rtk/smartTruncate.ts` | 13.43% | | 13 | `open-sse/services/compression/engines/rtk/deduplicator.ts` | 13.51% | | 14 | `src/lib/cloudAgent/agents/jules.ts` | 13.52% | | 15 | `open-sse/services/compression/lite.ts` | 14.46% | | 16 | `src/app/api/v1/rerank/route.ts` | 14.94% | | 17 | `open-sse/services/compression/preservation.ts` | 15.07% | | 18 | `src/lib/cloudAgent/agents/codex.ts` | 15.54% | | 19 | `open-sse/services/tierResolver.ts` | 16.66% | | 20 | `src/app/docs/components/DocsLazyWrapper.tsx` | 16.66% | Mga tema para sa mga Phase 6-7: - Ang `open-sse/services/compression/**` ang pinakamakapal na pangkat ng mababang coverage at bumubuo sa pinakamalaking bahagi ng natitirang kakulangan. - Kailangan ng mga test sa antas ng handler ang mga batch at rerank API route (`src/app/api/v1/batches/**`, `src/app/api/v1/rerank/route.ts`). - Kailangan ng mga scenario test ang mga cloud agent adapter (`src/lib/cloudAgent/agents/jules.ts`, `codex.ts`) at `tierResolver.ts`. - Mas mababa ang prayoridad ng mga Docs UI component at `src/mitm/systemCommands.ts`, ngunit madaling mapataas ang branch coverage ng mga ito. ## Checklist ng pagpapatupad ### Phase 1: 56.95% -> 60% - [x] Ayusin ang sukatan ng coverage upang masalamin nito ang source code sa halip na mga test file - [x] Panatilihin ang legacy coverage script para sa paghahambing - [x] Itala sa repository ang baseline at mga hotspot - [ ] Magdagdag ng mga nakatuong test para sa mga utility na mababa ang panganib: - `src/shared/utils/upstreamError.ts` - `src/shared/utils/fetchTimeout.ts` - `src/lib/api/errorResponse.ts` - `src/shared/utils/apiAuth.ts` - `src/lib/display/names.ts` - [ ] Magdagdag ng mga route test para sa: - `src/app/api/settings/require-login/route.ts` - `src/app/api/providers/[id]/models/route.ts` ### Phase 2: 60% -> 65% - [ ] Magdagdag ng mga test na gumagamit ng DB para sa: - `src/lib/db/modelComboMappings.ts` - `src/lib/db/settings.ts` - `src/lib/db/registeredKeys.ts` - [ ] Saklawin ang pag-uugali ng mga branch sa: - `src/lib/providers/validation.ts` - `src/app/api/v1/embeddings/route.ts` - `src/app/api/v1/moderations/route.ts` ### Phase 3: 65% -> 70% - [ ] Magdagdag ng mga test para sa usage analytics: - `src/lib/usage/usageHistory.ts` - `src/lib/usage/usageStats.ts` - `src/lib/usage/costCalculator.ts` - [ ] Palawakin ang route coverage para sa pamamahala ng proxy at mga branch ng setting ### Phase 4: 70% -> 75% - [ ] Saklawin ang mga translator helper at pangunahing daloy ng translation: - `open-sse/translator/index.ts` - `open-sse/translator/helpers/*` - `open-sse/translator/request/*` - `open-sse/translator/response/*` ### Phase 5: 75% -> 80% - [ ] Magdagdag ng mga test sa antas ng handler para sa: - `open-sse/handlers/chatCore.ts` - `open-sse/handlers/responsesHandler.js` - `open-sse/handlers/imageGeneration.js` - `open-sse/handlers/embeddings.js` - [ ] Magdagdag ng executor branch coverage para sa auth na partikular sa provider, mga retry, at mga override ng endpoint ### Phase 6: 80% -> 85% - [ ] Isama ang mas maraming edge-case suite sa pangunahing coverage path - [ ] Taasan ang function coverage para sa mga DB module na mahina ang coverage ng constructor/helper - [ ] Isara ang mga puwang sa branch coverage sa `settings.ts`, `registeredKeys.ts`, `validation.ts`, at mga translator helper ### Phase 7: 85% -> 90% - [ ] Ituring na mga blocker ang mga natitirang file na mababa ang coverage - [ ] Magdagdag ng mga regression test para sa bawat hindi nasaklaw na production bug na naayos habang itinutulak ang coverage tungo sa 90% - [ ] Taasan lamang ang coverage gate sa CI kapag matatag na ang lokal na baseline sa hindi bababa sa dalawang magkasunod na run ## Patakaran sa ratchet I-update lamang ang mga threshold ng `npm run test:coverage` kapag aktuwal nang lumampas ang proyekto sa susunod na milestone nang may sapat na palugit. **Kasalukuyang gate:** Ipinapatupad ng `npm run test:coverage` ang **60 pahayag / 60 linya / 60 function / 60 sangay** (muling ibinatay ang sukatan sa Quality-Gates Yugto 6A.1 — masyadong mataas ang naunang baseline na 82.58% dahil isinama nito ang mga test file at hindi isinama ang `open-sse`). Pinapanatili ng command na `test:coverage:legacy` ang lumang sukatang 50/50/50 para sa makasaysayang paghahambing. Para sa mga ad-hoc na pagsusuri ng threshold batay sa pinakabagong ulat, gamitin ang: ```bash node scripts/check/test-report-summary.mjs --threshold 75 ``` Inirerekomendang pagkakasunod-sunod ng ratchet (ang ayos ay `mga pahayag-mga linya / mga sangay / mga function`): 1. 55/60/55 2. 60/62/58 3. 65/64/62 4. 70/66/66 5. 75/70/72 <-- kasalukuyang gate (75/70/75) 6. 80/75/78 7. 85/80/84 8. 90/85/88 Ang susunod na target ng ratchet ay `80/75/78` kapag nanatiling mas mataas sa 78% ang coverage ng mga sangay sa dalawang magkasunod na pagpapatakbo. ## Kilalang kakulangan Sinusukat ng kasalukuyang coverage command ang pangunahing Node unit suite at isinasama ang source na naaabot mula rito, kabilang ang `open-sse`. Hindi pa nito pinagsasama ang coverage ng Vitest sa iisang pinag-isang ulat. Makabuluhang gawin ang pagsasamang iyon sa hinaharap, ngunit hindi ito hadlang upang simulan ang pag-angat mula 60% -> 80%.