# Test Coverage Plan (Oʻzbekcha) 🌐 **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) · 🇻🇳 [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) --- Soʻnggi yangilanish: 2026-06-28 > Holat 2026-05-13 sanasida oʻlchangan: satrlar 82.58%, operatorlar 82.58%, funksiyalar 84.23%, tarmoqlar 75.22%. 1–5-bosqichlar yakunlangan. Hozirgi eʼtibor 6-bosqichga (>=85%) va 7-bosqichga (>=90%) qaratilgan. ## Boshlang‘ich ko‘rsatkich Hisobot qanday hisoblanishiga qarab, bir nechta qamrov ko‘rsatkichlari mavjud. Rejalashtirish uchun ulardan faqat bittasi foydalidir. | Ko‘rsatkich | Qamrov sohasi | Ifodalar / satrlar | Tarmoqlar | Funksiyalar | Izohlar | | ---------------------------------------- | -------------------------------------------------------------- | -----------------: | --------: | ----------: | -------------------------------------------------------------------------------- | | Eski | Eski `npm run test:coverage` | 79.42% | 75.15% | 67.94% | Oshirib ko‘rsatilgan: test fayllarini sanaydi va `open-sse`ni chiqarib tashlaydi | | Diagnostik | Faqat manba, testlar va `open-sse` bundan mustasno | 68.16% | 63.55% | 64.06% | Faqat `src/**`ni alohida ajratish uchun foydali | | Tavsiya etilgan boshlang‘ich ko‘rsatkich | Faqat manba, testlar bundan mustasno va `open-sse` bilan birga | 82.58% | 75.22% | 84.23% | Bu yaxshilanishi kerak bo‘lgan loyiha miqyosidagi boshlang‘ich ko‘rsatkich | Tavsiya etilgan boshlang‘ich ko‘rsatkich — optimallashtirish uchun asos bo‘ladigan ko‘rsatkich. ## Qoidalar - Qamrov maqsadlari `tests/**`ga emas, manba fayllariga nisbatan qo‘llanadi. - `open-sse/**` mahsulotning bir qismi va qamrov doirasida qolishi shart. - Yangi kod o‘zgartirilgan sohalardagi qamrovni kamaytirmasligi kerak. - Amalga oshirish tafsilotlaridan ko‘ra xatti-harakatlar va tarmoq natijalarini sinashni afzal ko‘ring. - `src/lib/db/**` uchun keng qamrovli moklardan ko‘ra vaqtinchalik SQLite ma’lumotlar bazalari va kichik test ma’lumotlarini afzal ko‘ring. ## Joriy buyruqlar to‘plami - `npm run test:coverage` - Birlik testlari to‘plami uchun asosiy manba qamrovi nazorat chegarasi - `text-summary`, `html`, `json-summary` va `lcov`ni yaratadi - `npm run coverage:report` - Eng so‘nggi ishga tushirishdan olingan, har bir fayl bo‘yicha batafsil hisobot - `npm run test:coverage:legacy` - Faqat tarixiy taqqoslash uchun ## Bosqichlar | Bosqich | Maqsad | E’tibor yo‘nalishi | Holat | | --------- | ---------------------: | ------------------------------------------------------------------------------- | ------------ | | 1-bosqich | 60% ifodalar / satrlar | Tezkor natijalar va xavfi past yordamchi vositalar qamrovi | ✅ Bajarildi | | 2-bosqich | 65% ifodalar / satrlar | MB va marshrut asoslari | ✅ Bajarildi | | 3-bosqich | 70% ifodalar / satrlar | Provayderni tekshirish va foydalanish tahlili | ✅ Bajarildi | | 4-bosqich | 75% ifodalar / satrlar | `open-sse` tarjimonlari va yordamchi vositalari | ✅ Bajarildi | | 5-bosqich | 80% ifodalar / satrlar | `open-sse` ishlov beruvchilari va bajaruvchi tarmoqlari | ✅ Bajarildi | | 6-bosqich | 85% ifodalar / satrlar | Murakkabroq chekka holatlar, tarmoq qarzi, regressiya testlari to‘plamlari | Jarayonda | | 7-bosqich | 90% ifodalar / satrlar | Yakuniy ko‘rib chiqish, bo‘shliqlarni yopish, qat’iy bosqichma-bosqich oshirish | Kutilmoqda | Tarmoqlar va funksiyalar qamrovi har bir bosqichda izchil oshib borishi kerak, biroq asosiy qat’iy maqsad — ifodalar / satrlar qamrovi. ## Ustuvor yoʻnalishlar Quyidagi fayllar hozirda eng past satr qamroviga (< 60%) ega va 6–7-bosqichlar uchun eng yaxshi natijani beradi. 2026-05-13 kuni `coverage/coverage-summary.json` asosida yaratilgan: | # | Fayl | Satrlar % | | --- | ------------------------------------------------------------ | --------: | | 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% | 6–7-bosqichlar uchun asosiy yoʻnalishlar: - `open-sse/services/compression/**` past qamrovli fayllarning eng zich toʻplami boʻlib, qolgan tafovutning asosiy qismini tashkil etadi. - Paketli amallar va qayta saralash API marshrutlari (`src/app/api/v1/batches/**`, `src/app/api/v1/rerank/route.ts`) uchun ishlov beruvchi darajasidagi testlar zarur. - Bulut agenti adapterlari (`src/lib/cloudAgent/agents/jules.ts`, `codex.ts`) va `tierResolver.ts` uchun ssenariy testlari zarur. - Hujjatlar interfeysi komponentlari va `src/mitm/systemCommands.ts` ustuvorligi pastroq, ammo tarmoqlar qamrovini kam xarajat bilan oshirish imkonini beradi. ## Bajarish nazorat roʻyxati ### 1-bosqich: 56.95% -> 60% - [x] Qamrov koʻrsatkichini test fayllari oʻrniga manba kodini aks ettiradigan qilib tuzatish - [x] Taqqoslash uchun eski qamrov skriptini saqlab qolish - [x] Boshlangʻich holat va ustuvor yoʻnalishlarni repozitoriyda qayd etish - [ ] Xavfi past yordamchi vositalar uchun maqsadli testlar qoʻshish: - `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` - [ ] Quyidagilar uchun marshrut testlarini qoʻshish: - `src/app/api/settings/require-login/route.ts` - `src/app/api/providers/[id]/models/route.ts` ### 2-bosqich: 60% -> 65% - [ ] Quyidagilar uchun maʼlumotlar bazasi bilan ishlaydigan testlarni qoʻshish: - `src/lib/db/modelComboMappings.ts` - `src/lib/db/settings.ts` - `src/lib/db/registeredKeys.ts` - [ ] Quyidagilardagi tarmoqlanish xatti-harakatlarini qamrab olish: - `src/lib/providers/validation.ts` - `src/app/api/v1/embeddings/route.ts` - `src/app/api/v1/moderations/route.ts` ### 3-bosqich: 65% -> 70% - [ ] Quyidagilar uchun foydalanish tahlili testlarini qoʻshish: - `src/lib/usage/usageHistory.ts` - `src/lib/usage/usageStats.ts` - `src/lib/usage/costCalculator.ts` - [ ] Proksi boshqaruvi va sozlamalar tarmoqlari uchun marshrut qamrovini kengaytirish ### 4-bosqich: 70% -> 75% - [ ] Tarjimon yordamchi vositalari va markaziy tarjima yoʻllarini qamrab olish: - `open-sse/translator/index.ts` - `open-sse/translator/helpers/*` - `open-sse/translator/request/*` - `open-sse/translator/response/*` ### 5-bosqich: 75% -> 80% - [ ] Quyidagilar uchun ishlov beruvchi darajasidagi testlarni qoʻshish: - `open-sse/handlers/chatCore.ts` - `open-sse/handlers/responsesHandler.js` - `open-sse/handlers/imageGeneration.js` - `open-sse/handlers/embeddings.js` - [ ] Provayderga xos autentifikatsiya, qayta urinishlar va soʻnggi nuqta almashtirishlari uchun ijrochi tarmoqlari qamrovini qoʻshish ### 6-bosqich: 80% -> 85% - [ ] Koʻproq noodatiy holatlar test toʻplamlarini asosiy qamrov yoʻliga birlashtirish - [ ] Konstruktori va yordamchi vositalari qamrovi zaif boʻlgan maʼlumotlar bazasi modullari uchun funksiyalar qamrovini oshirish - [ ] `settings.ts`, `registeredKeys.ts`, `validation.ts` va tarjimon yordamchi vositalaridagi tarmoqlanish qamrovi boʻshliqlarini yopish ### 7-bosqich: 85% -> 90% - [ ] Qamrovi past boʻlib qolgan fayllarni toʻsiq sifatida koʻrib chiqish - [ ] 90% ga erishish jarayonida tuzatilgan har bir qamrab olinmagan ishlab chiqarish xatosi uchun regressiya testlarini qoʻshish - [ ] Faqat mahalliy boshlangʻich koʻrsatkich ketma-ket kamida ikki marta barqaror boʻlganidan soʻng CI tizimidagi qamrov chegarasini oshirish ## Ratchet siyosati `npm run test:coverage` chegaralarini faqat loyiha keyingi bosqichdan yetarlicha zaxira bilan amalda oshib o‘tgandan keyin yangilang. **Joriy chegara:** `npm run test:coverage` **60 ta bayonot / 60 ta satr / 60 ta funksiya / 60 ta tarmoq** talabini qo‘llaydi (ko‘rsatkich Quality-Gates 6A.1-bosqichida qayta bazalangan — avvalgi 82.58% bazaviy ko‘rsatkichi test fayllarini hisobga olgani va `open-sse`ni istisno qilgani sababli sun’iy ravishda yuqori edi). `test:coverage:legacy` buyrug‘i tarixiy taqqoslash uchun eski 50/50/50 ko‘rsatkichini saqlab qoladi. Eng so‘nggi hisobot asosida maxsus chegara tekshiruvlari uchun quyidagidan foydalaning: ```bash node scripts/check/test-report-summary.mjs --threshold 75 ``` Tavsiya etilgan ratchet ketma-ketligi (tartib: `bayonotlar-satrlar / tarmoqlar / funksiyalar`): 1. 55/60/55 2. 60/62/58 3. 65/64/62 4. 70/66/66 5. 75/70/72 <-- joriy chegara (75/70/75) 6. 80/75/78 7. 85/80/84 8. 90/85/88 Tarmoqlar qamrovi ketma-ket ikki ishga tushirish davomida 78% dan yuqori bo‘lib turgach, keyingi ratchet maqsadi `80/75/78` bo‘ladi. ## Ma’lum kamchilik Joriy qamrov buyrug‘i asosiy Node modul testlari to‘plamini o‘lchaydi va u orqali qamrab olingan manba kodini, jumladan `open-sse`ni ham o‘z ichiga oladi. U hali Vitest qamrovini yagona birlashtirilgan hisobotga qo‘shmaydi. Bunday birlashtirishni keyinroq amalga oshirish maqsadga muvofiq, ammo bu 60% -> 80% ko‘tarilishni boshlash uchun to‘siq emas.