# Test Coverage Plan (Yorùbá) 🌐 **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) · 🇵🇭 [phi](../../../phi/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) · 🇨🇳 [zh-CN](../../../zh-CN/docs/ops/COVERAGE_PLAN.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/ops/COVERAGE_PLAN.md) --- Ìgbà ìkẹyìn tí a ṣe àfikún: 2026-06-28 > Ipò tí a wọn ní 2026-05-13: àwọn ìlà 82.58%, àwọn gbólóhùn 82.58%, àwọn iṣẹ́ 84.23%, àwọn ẹ̀ka 75.22%. Àwọn Ìpele 1-5 ti parí. Ohun tí a dojú kọ lọ́wọ́lọ́wọ́ ni Ìpele 6 (>=85%) àti Ìpele 7 (>=90%). ## Ìpìlẹ̀ ìwọ̀n Ọ̀pọ̀ iye ìborí ló wà, èyí sì sinmi lórí bí a ṣe ṣírò ìjábọ̀ náà. Fún ìṣètò, ọ̀kan péré nínú wọn ló wúlò. | Ìwọ̀n | Ààlà | Àwọn Gbólóhùn / Ìlà | Àwọn Ẹ̀ka | Àwọn Iṣẹ́ | Àwọn Àkíyèsí | | --------------------- | ------------------------------------------------------------ | ------------------: | -------: | -------: | -------------------------------------------------------------------- | | Ti àtijọ́ | `npm run test:coverage` ti àtijọ́ | 79.42% | 75.15% | 67.94% | Ó ga ju bó ṣe yẹ lọ: ó ka àwọn fáìlì ìdánwò, ó sì yọ `open-sse` kúrò | | Ìṣàyẹ̀wò àìlera | Kóòdù orísun nìkan, láìka àwọn ìdánwò àti `open-sse` | 68.16% | 63.55% | 64.06% | Ó wúlò fún yíya `src/**` sọ́tọ̀ nìkan | | Ìpìlẹ̀ ìwọ̀n tí a dábàá | Kóòdù orísun nìkan, láìka àwọn ìdánwò ṣùgbọ́n pẹ̀lú `open-sse` | 82.58% | 75.22% | 84.23% | Èyí ni ìpìlẹ̀ ìwọ̀n gbogbo iṣẹ́ àkànṣe tí a ó mú sunwọ̀n sí i | Ìpìlẹ̀ ìwọ̀n tí a dábàá ni iye tí a gbọ́dọ̀ mú sunwọ̀n sí i. ## Àwọn òfin - Àwọn àfojúsùn ìborí kan àwọn fáìlì orísun, kì í ṣe `tests/**`. - `open-sse/**` jẹ́ apá kan ọjà náà, ó sì gbọ́dọ̀ wà nínú ààlà. - Kóòdù tuntun kò gbọ́dọ̀ dín ìborí kù ní àwọn agbègbè tí a bá yí padà. - Yan ìdánwò ìhùwàsí àti àbájáde àwọn ẹ̀ka dípò àwọn kúlẹ̀kúlẹ̀ ìmúṣẹ. - Yan àwọn ibi ìpamọ́ dátà SQLite fún ìgbà díẹ̀ àti àwọn àpẹẹrẹ kéékèèké dípò àwọn àfarawé gbòòrò fún `src/lib/db/**`. ## Àkójọpọ̀ àṣẹ lọ́wọ́lọ́wọ́ - `npm run test:coverage` - Ìdènà ìborí kóòdù orísun àkọ́kọ́ fún àkójọpọ̀ ìdánwò ẹyọ kọ̀ọ̀kan - Ó ń ṣe àgbéjáde `text-summary`, `html`, `json-summary`, àti `lcov` - `npm run coverage:report` - Ìjábọ̀ ẹ̀kúnrẹ́rẹ́ fáìlì-kọ̀ọ̀kan láti inú ìdánwò tuntun jù lọ - `npm run test:coverage:legacy` - Fún ìfiwéra pẹ̀lú ti àtijọ́ nìkan ## Àwọn ìpele pàtàkì | Ìpele | Àfojúsùn | Ohun tí a dojú kọ | Ipò | | ------- | ----------------------: | ----------------------------------------------------------------- | --------------- | | Ìpele 1 | 60% àwọn gbólóhùn / ìlà | Àwọn àǹfààní kíákíá àti ìborí irinṣẹ́ tó ní ewu kékeré | ✅ Ti parí | | Ìpele 2 | 65% àwọn gbólóhùn / ìlà | Àwọn ìpìlẹ̀ ibi ìpamọ́ dátà àti ipa-ọ̀nà | ✅ Ti parí | | Ìpele 3 | 70% àwọn gbólóhùn / ìlà | Ìfọwọ́sí olupèsè àti àyẹ̀wò ìlò | ✅ Ti parí | | Ìpele 4 | 75% àwọn gbólóhùn / ìlà | Àwọn atúmọ̀ àti olùrànlọ́wọ́ `open-sse` | ✅ Ti parí | | Ìpele 5 | 80% àwọn gbólóhùn / ìlà | Àwọn olùmúlò ìbéèrè `open-sse` àti àwọn ẹ̀ka olùṣiṣẹ́ | ✅ Ti parí | | Ìpele 6 | 85% àwọn gbólóhùn / ìlà | Àwọn ọ̀ràn etí tó le, àìpé ẹ̀ka, àti àwọn àkójọpọ̀ ìdánwò ìpadàsẹ́yìn | Ń lọ lọ́wọ́ | | Ìpele 7 | 90% àwọn gbólóhùn / ìlà | Àyẹ̀wò ìkẹyìn, pípa àwọn àlàfo dé, àti ìmúrasílẹ̀ òfin gíga | Ń dúró de ìmúṣẹ | Àwọn ẹ̀ka àti iṣẹ́ gbọ́dọ̀ máa pọ̀ sí i pẹ̀lú ìpele kọ̀ọ̀kan, ṣùgbọ́n àfojúsùn líle àkọ́kọ́ ni àwọn gbólóhùn / ìlà. ## Àwọn ibi pàtàkì jù lọ Àwọn fáìlì wọ̀nyí ni ìbojú-laini tó kéré jù lọ lọ́wọ́lọ́wọ́ (< 60%), wọ́n sì ń fúnni ní èrè tó dára jù lọ fún Àwọn Ìpele 6-7. A ṣẹ̀dá rẹ̀ láti inú `coverage/coverage-summary.json` ní 2026-05-13: | # | Fáìlì | Ìbojú àwọn laini % | | --- | ------------------------------------------------------------ | -----------------: | | 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% | Àwọn kókó fún Àwọn Ìpele 6-7: - `open-sse/services/compression/**` ni àkójọpọ̀ àwọn ibi tí ìbojú wọn kéré tó pọ̀ jù lọ, ó sì jẹ́ apá tó pọ̀ jù lọ nínú àlàfo tó ṣẹ́ kù. - Àwọn ipa-ọ̀nà API fún ìpele àti àtúntò-ipò (`src/app/api/v1/batches/**`, `src/app/api/v1/rerank/route.ts`) nílò àwọn àyẹ̀wò ní ìpele olùmójútó. - Àwọn ohun ìbámu aṣojú àwọsánmà (`src/lib/cloudAgent/agents/jules.ts`, `codex.ts`) àti `tierResolver.ts` nílò àwọn àyẹ̀wò ipò-ìṣẹ̀lẹ̀. - Àwọn àkópọ̀ UI ìwé àlàyé àti `src/mitm/systemCommands.ts` kò fi bẹ́ẹ̀ ṣe pàtàkì, ṣùgbọ́n wọ́n jẹ́ àwọn èrè ẹ̀ka tó rọrùn. ## Àkójọ àyẹ̀wò ìmúṣẹ ### Ìpele 1: 56.95% -> 60% - [x] Ṣàtúnṣe òṣùwọ̀n ìbojú kí ó lè ṣe àfihàn kóòdù orísun dípò àwọn fáìlì àyẹ̀wò - [x] Pa àfọwọ́kọ ìbojú àtijọ́ mọ́ fún ìfiwéra - [x] Ṣàkọsílẹ̀ ìpìlẹ̀ àti àwọn ibi pàtàkì sínú ibi ìpamọ́ - [ ] Ṣàfikún àwọn àyẹ̀wò tó dá lé àwọn ohun èlò tó ní ewu kékeré: - `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` - [ ] Ṣàfikún àwọn àyẹ̀wò ipa-ọ̀nà fún: - `src/app/api/settings/require-login/route.ts` - `src/app/api/providers/[id]/models/route.ts` ### Ìpele 2: 60% -> 65% - [ ] Ṣàfikún àwọn àyẹ̀wò tó gbára lé DB fún: - `src/lib/db/modelComboMappings.ts` - `src/lib/db/settings.ts` - `src/lib/db/registeredKeys.ts` - [ ] Bo ìhùwàsí ẹ̀ka nínú: - `src/lib/providers/validation.ts` - `src/app/api/v1/embeddings/route.ts` - `src/app/api/v1/moderations/route.ts` ### Ìpele 3: 65% -> 70% - [ ] Ṣàfikún àwọn àyẹ̀wò ìtúpalẹ̀ lílò fún: - `src/lib/usage/usageHistory.ts` - `src/lib/usage/usageStats.ts` - `src/lib/usage/costCalculator.ts` - [ ] Fa ìbojú ipa-ọ̀nà gbòòrò fún ìṣàkóso aṣojú àti àwọn ẹ̀ka ààtò ### Ìpele 4: 70% -> 75% - [ ] Bo àwọn olùrànlọ́wọ́ atúmọ̀ èdè àti àwọn ipa-ọ̀nà àárín gbùngbùn fún ìtumọ̀: - `open-sse/translator/index.ts` - `open-sse/translator/helpers/*` - `open-sse/translator/request/*` - `open-sse/translator/response/*` ### Ìpele 5: 75% -> 80% - [ ] Ṣàfikún àwọn àyẹ̀wò ní ìpele olùmójútó fún: - `open-sse/handlers/chatCore.ts` - `open-sse/handlers/responsesHandler.js` - `open-sse/handlers/imageGeneration.js` - `open-sse/handlers/embeddings.js` - [ ] Ṣàfikún ìbojú ẹ̀ka olùṣàṣe fún ìfàṣẹsí tó jẹ́ ti olùpèsè kan pàtó, àwọn àtúnṣe-ìgbìyànjú, àti àwọn ìkọ̀wé-àtúnṣe ibi ìparí ### Ìpele 6: 80% -> 85% - [ ] Dapọ̀ àwọn àkójọpọ̀ àyẹ̀wò ọ̀ràn-ààyè púpọ̀ sí i mọ́ ipa-ọ̀nà ìbojú àkọ́kọ́ - [ ] Mu ìbojú iṣẹ́ pọ̀ sí i fún àwọn módùlù DB tí ìbojú olùkọ́lé/olùrànlọ́wọ́ wọn kò lágbára - [ ] Pa àwọn àlàfo ẹ̀ka nínú `settings.ts`, `registeredKeys.ts`, `validation.ts`, àti àwọn olùrànlọ́wọ́ atúmọ̀ èdè dé ### Ìpele 7: 85% -> 90% - [ ] Ka gbogbo fáìlì tó ṣẹ́ kù tí ìbojú wọn kéré sí ohun ìdènà - [ ] Ṣàfikún àwọn àyẹ̀wò ìfàsẹ́yìn fún gbogbo àṣìṣe ọjà tí a ṣàtúnṣe lákòókò ìsapá láti dé 90% - [ ] Gbé ẹnu-ọ̀nà ìbojú sókè nínú CI lẹ́yìn tí ìpìlẹ̀ abẹ́nú bá ti dúró ṣinṣin fún ó kéré tán ìmúṣẹ méjì tẹ̀léra nìkan ## Ìlànà ratchet Ṣe àfikún sí àwọn ààlà `npm run test:coverage` kìkì lẹ́yìn tí iṣẹ́ náà bá ti kọjá àmì-àfojúsùn tó tẹ̀ lé e ní ti gidi, pẹ̀lú ààyè ààbò tó dára. **Ààlà lọ́wọ́lọ́wọ́:** `npm run test:coverage` ń fipá mú **60 statements / 60 lines / 60 functions / 60 branches** (a tún ìwọ̀n náà gbé ka lórí ìpìlẹ̀ tuntun ní Quality-Gates Ìpele 6A.1 — ìpìlẹ̀ 82.58% ti tẹ́lẹ̀ ga ju bó ṣe yẹ lọ nítorí pé ó ka àwọn fáìlì ìdánwò, ó sì yọ `open-sse` sílẹ̀). Àṣẹ `test:coverage:legacy` pa ìwọ̀n 50/50/50 àtijọ́ mọ́ fún ìfiwéra ìtàn. Fún ṣíṣe àyẹ̀wò ààlà lẹ́sẹ̀kẹsẹ̀ lórí ìròyìn tuntun, lo: ```bash node scripts/check/test-report-summary.mjs --threshold 75 ``` Ọ̀wọ́ ratchet tí a dámọ̀ràn (ètò rẹ̀ ni `statements-lines / branches / functions`): 1. 55/60/55 2. 60/62/58 3. 65/64/62 4. 70/66/66 5. 75/70/72 <-- ààlà lọ́wọ́lọ́wọ́ (75/70/75) 6. 80/75/78 7. 85/80/84 8. 90/85/88 Àfojúsùn ratchet tó tẹ̀ lé e ni `80/75/78` nígbà tí ààbò branch bá dúró lókè 78% fún ìṣiṣẹ́ méjì tẹ̀léra. ## Àlàfo tí a mọ̀ Àṣẹ ààbò lọ́wọ́lọ́wọ́ ń díwọ̀n àkójọpọ̀ ìdánwò unit Node àkọ́kọ́, ó sì ní source tí wọ́n dé láti inú rẹ̀, pẹ̀lú `open-sse`. Kò tíì ṣàkópọ̀ ààbò Vitest sínú ìròyìn kan ṣoṣo tó ṣọ̀kan. Ó yẹ kí a ṣe àkópọ̀ yẹn nígbà míì, ṣùgbọ́n kì í ṣe ìdènà fún bíbẹ̀rẹ̀ ìlọsíwájú láti 60% -> 80%.