# Test Coverage Plan (ગુજરાતી) 🌐 **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) · 🇳🇬 [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) · 🇳🇬 [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) --- છેલ્લે અપડેટ કરેલ: 2026-06-28 > 2026-05-13ના રોજ માપવામાં આવેલી સ્થિતિ: લાઇનો 82.58%, સ્ટેટમેન્ટ્સ 82.58%, ફંક્શન્સ 84.23%, બ્રાન્ચો 75.22%. તબક્કા 1-5 પૂર્ણ થયા છે. વર્તમાન ધ્યાન તબક્કો 6 (>=85%) અને તબક્કો 7 (>=90%) પર છે. ## આધારરેખા રિપોર્ટની ગણતરી કેવી રીતે કરવામાં આવે છે તેના આધારે અનેક કવરેજ આંકડા મળે છે. આયોજન માટે, તેમાંથી માત્ર એક જ ઉપયોગી છે. | માપદંડ | વ્યાપ | સ્ટેટમેન્ટ્સ / લાઇનો | બ્રાન્ચો | ફંક્શન્સ | નોંધો | | -------------------- | ---------------------------------------------------------- | -------------------: | -------: | -------: | --------------------------------------------------------------------- | | લેગસી | જૂનું `npm run test:coverage` | 79.42% | 75.15% | 67.94% | કૃત્રિમ રીતે ઊંચું: ટેસ્ટ ફાઇલો ગણે છે અને `open-sse`ને બાકાત રાખે છે | | નિદાનાત્મક | માત્ર સોર્સ, ટેસ્ટ અને `open-sse`ને બાકાત રાખીને | 68.16% | 63.55% | 64.06% | ફક્ત `src/**`ને અલગ પાડવા માટે ઉપયોગી | | ભલામણ કરેલી આધારરેખા | માત્ર સોર્સ, ટેસ્ટને બાકાત રાખીને અને `open-sse`ને સમાવીને | 82.58% | 75.22% | 84.23% | સુધારવા માટે આ સમગ્ર પ્રોજેક્ટની આધારરેખા છે | ભલામણ કરેલી આધારરેખા એ એવો આંકડો છે જેને ધ્યાનમાં રાખીને ઑપ્ટિમાઇઝ કરવું જોઈએ. ## નિયમો - કવરેજ લક્ષ્યો સોર્સ ફાઇલોને લાગુ પડે છે, `tests/**`ને નહીં. - `open-sse/**` પ્રોડક્ટનો ભાગ છે અને તે વ્યાપમાં જ રહેવો જોઈએ. - નવા કોડે સ્પર્શ કરેલા વિસ્તારોમાં કવરેજ ઘટાડવું જોઈએ નહીં. - અમલીકરણની વિગતો કરતાં વર્તન અને બ્રાન્ચનાં પરિણામોનું પરીક્ષણ કરવાનું પસંદ કરો. - `src/lib/db/**` માટે વ્યાપક મૉક્સ કરતાં અસ્થાયી SQLite ડેટાબેઝ અને નાના ફિક્સ્ચર્સને પ્રાધાન્ય આપો. ## વર્તમાન કમાન્ડ સમૂહ - `npm run test:coverage` - યુનિટ ટેસ્ટ સ્યુટ માટેનું મુખ્ય સોર્સ કવરેજ ગેટ - `text-summary`, `html`, `json-summary`, અને `lcov` જનરેટ કરે છે - `npm run coverage:report` - સૌથી તાજેતરના રનમાંથી વિગતવાર ફાઇલ-દર-ફાઇલ રિપોર્ટ - `npm run test:coverage:legacy` - ફક્ત ઐતિહાસિક સરખામણી માટે ## સીમાચિહ્નો | તબક્કો | લક્ષ્ય | ધ્યાન | સ્થિતિ | | -------- | -----------------------: | ------------------------------------------------- | ------------ | | તબક્કો 1 | 60% સ્ટેટમેન્ટ્સ / લાઇનો | ઝડપી સફળતાઓ અને ઓછા જોખમવાળું યુટિલિટી કવરેજ | ✅ પૂર્ણ | | તબક્કો 2 | 65% સ્ટેટમેન્ટ્સ / લાઇનો | DB અને રૂટનાં પાયા | ✅ પૂર્ણ | | તબક્કો 3 | 70% સ્ટેટમેન્ટ્સ / લાઇનો | પ્રોવાઇડર માન્યતા અને ઉપયોગ વિશ્લેષણ | ✅ પૂર્ણ | | તબક્કો 4 | 75% સ્ટેટમેન્ટ્સ / લાઇનો | `open-sse` ટ્રાન્સલેટર્સ અને હેલ્પર્સ | ✅ પૂર્ણ | | તબક્કો 5 | 80% સ્ટેટમેન્ટ્સ / લાઇનો | `open-sse` હેન્ડલર્સ અને એક્ઝિક્યુટર બ્રાન્ચો | ✅ પૂર્ણ | | તબક્કો 6 | 85% સ્ટેટમેન્ટ્સ / લાઇનો | વધુ મુશ્કેલ એજ કેસો, બ્રાન્ચ ઋણ, રિગ્રેશન સ્યુટ્સ | પ્રગતિમાં છે | | તબક્કો 7 | 90% સ્ટેટમેન્ટ્સ / લાઇનો | અંતિમ ચકાસણી, ખામીઓની પૂર્તિ, કડક રૅચેટ | બાકી | દરેક તબક્કા સાથે બ્રાન્ચો અને ફંક્શન્સનું કવરેજ ક્રમશઃ વધવું જોઈએ, પરંતુ મુખ્ય કડક લક્ષ્ય સ્ટેટમેન્ટ્સ / લાઇનો છે. ## પ્રાથમિકતાવાળા હોટસ્પોટ્સ આ ફાઇલોમાં હાલમાં સૌથી ઓછું લાઇન કવરેજ (< 60%) છે અને તબક્કા 6-7 માટે શ્રેષ્ઠ વળતર આપે છે. 2026-05-13ના રોજ `coverage/coverage-summary.json`માંથી જનરેટ કરાયેલ: | # | ફાઇલ | લાઇન્સ % | | --- | ------------------------------------------------------------ | -------: | | 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 માટેની મુખ્ય થીમ્સ: - `open-sse/services/compression/**` ઓછા કવરેજવાળી ફાઇલોનો સૌથી ગીચ સમૂહ છે અને બાકીના અંતરમાં તેનો હિસ્સો સૌથી મોટો છે. - બેચ અને રીરૅન્ક API રૂટ્સ (`src/app/api/v1/batches/**`, `src/app/api/v1/rerank/route.ts`) માટે હેન્ડલર-સ્તરના ટેસ્ટ્સ જરૂરી છે. - ક્લાઉડ એજન્ટ એડેપ્ટર્સ (`src/lib/cloudAgent/agents/jules.ts`, `codex.ts`) અને `tierResolver.ts` માટે પરિદૃશ્ય-આધારિત ટેસ્ટ્સ જરૂરી છે. - ડૉક્સ UI કમ્પોનન્ટ્સ અને `src/mitm/systemCommands.ts` ની પ્રાથમિકતા ઓછી છે, પરંતુ ઓછા પ્રયાસે બ્રાન્ચ કવરેજ વધારી શકાય છે. ## અમલીકરણ ચેકલિસ્ટ ### તબક્કો 1: 56.95% -> 60% - [x] કવરેજ મેટ્રિકને સુધારો જેથી તે ટેસ્ટ ફાઇલોને બદલે સોર્સ કોડ દર્શાવે - [x] સરખામણી માટે લેગસી કવરેજ સ્ક્રિપ્ટ જાળવી રાખો - [x] બેઝલાઇન અને હોટસ્પોટ્સને રિપોઝિટરીમાં નોંધો - [ ] ઓછા જોખમવાળી યુટિલિટીઝ માટે કેન્દ્રિત ટેસ્ટ્સ ઉમેરો: - `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` - [ ] આ માટે રૂટ ટેસ્ટ્સ ઉમેરો: - `src/app/api/settings/require-login/route.ts` - `src/app/api/providers/[id]/models/route.ts` ### તબક્કો 2: 60% -> 65% - [ ] આ માટે DB-સમર્થિત ટેસ્ટ્સ ઉમેરો: - `src/lib/db/modelComboMappings.ts` - `src/lib/db/settings.ts` - `src/lib/db/registeredKeys.ts` - [ ] આમાં બ્રાન્ચ વર્તણૂકને કવર કરો: - `src/lib/providers/validation.ts` - `src/app/api/v1/embeddings/route.ts` - `src/app/api/v1/moderations/route.ts` ### તબક્કો 3: 65% -> 70% - [ ] આ માટે ઉપયોગ વિશ્લેષણના ટેસ્ટ્સ ઉમેરો: - `src/lib/usage/usageHistory.ts` - `src/lib/usage/usageStats.ts` - `src/lib/usage/costCalculator.ts` - [ ] પ્રોક્સી મેનેજમેન્ટ અને સેટિંગ્સ બ્રાન્ચ માટે રૂટ કવરેજ વિસ્તારો ### તબક્કો 4: 70% -> 75% - [ ] ટ્રાન્સલેટર હેલ્પર્સ અને કેન્દ્રીય અનુવાદ પાથ્સને કવર કરો: - `open-sse/translator/index.ts` - `open-sse/translator/helpers/*` - `open-sse/translator/request/*` - `open-sse/translator/response/*` ### તબક્કો 5: 75% -> 80% - [ ] આ માટે હેન્ડલર-સ્તરના ટેસ્ટ્સ ઉમેરો: - `open-sse/handlers/chatCore.ts` - `open-sse/handlers/responsesHandler.js` - `open-sse/handlers/imageGeneration.js` - `open-sse/handlers/embeddings.js` - [ ] પ્રોવાઇડર-વિશિષ્ટ ઑથ, પુનઃપ્રયાસો અને એન્ડપોઇન્ટ ઓવરરાઇડ્સ માટે એક્ઝિક્યુટર બ્રાન્ચ કવરેજ ઉમેરો ### તબક્કો 6: 80% -> 85% - [ ] વધુ એજ-કેસ ટેસ્ટ સ્યુટ્સને મુખ્ય કવરેજ પાથમાં મર્જ કરો - [ ] નબળા કન્સ્ટ્રક્ટર/હેલ્પર કવરેજ ધરાવતા DB મોડ્યુલ્સ માટે ફંક્શન કવરેજ વધારો - [ ] `settings.ts`, `registeredKeys.ts`, `validation.ts` અને ટ્રાન્સલેટર હેલ્પર્સમાં બ્રાન્ચના અંતરો દૂર કરો ### તબક્કો 7: 85% -> 90% - [ ] બાકી રહેલી ઓછા કવરેજવાળી ફાઇલોને અવરોધક ગણો - [ ] 90% સુધી પહોંચવાના પ્રયાસ દરમિયાન સુધારવામાં આવેલી દરેક અનકવર્ડ પ્રોડક્શન બગ માટે રિગ્રેશન ટેસ્ટ્સ ઉમેરો - [ ] સ્થાનિક બેઝલાઇન ઓછામાં ઓછા સતત બે રન સુધી સ્થિર રહે ત્યાર પછી જ CIમાં કવરેજ ગેટ વધારો ## રૅચેટ નીતિ પ્રોજેક્ટ આરામદાયક માર્જિન સાથે આગળનો માઇલસ્ટોન વાસ્તવમાં પાર કરે ત્યાર પછી જ `npm run test:coverage` થ્રેશોલ્ડ અપડેટ કરો. **વર્તમાન ગેટ:** `npm run test:coverage` **60 સ્ટેટમેન્ટ્સ / 60 લાઇન્સ / 60 ફંક્શન્સ / 60 બ્રાન્ચિસ** લાગુ કરે છે (Quality-Gates તબક્કા 6A.1માં મેટ્રિકને ફરીથી આધારિત કરવામાં આવ્યું હતું — અગાઉની 82.58% બેઝલાઇન વધુ દર્શાવતી હતી, કારણ કે તેમાં ટેસ્ટ ફાઇલોની ગણતરી થતી હતી અને `open-sse`ને બાકાત રાખવામાં આવતું હતું). `test:coverage:legacy` કમાન્ડ ઐતિહાસિક સરખામણી માટે જૂના 50/50/50 મેટ્રિકને જાળવી રાખે છે. નવીનતમ રિપોર્ટ સામે તાત્કાલિક થ્રેશોલ્ડ તપાસ માટે આનો ઉપયોગ કરો: ```bash node scripts/check/test-report-summary.mjs --threshold 75 ``` ભલામણ કરેલો રૅચેટ ક્રમ (ક્રમ `statements-lines / branches / functions` છે): 1. 55/60/55 2. 60/62/58 3. 65/64/62 4. 70/66/66 5. 75/70/72 <-- વર્તમાન ગેટ (75/70/75) 6. 80/75/78 7. 85/80/84 8. 90/85/88 જ્યારે બ્રાન્ચ કવરેજ સતત બે રન માટે 78%થી ઉપર જળવાય, ત્યારે આગામી રૅચેટ લક્ષ્ય `80/75/78` છે. ## જાણીતી ખામી વર્તમાન કવરેજ કમાન્ડ મુખ્ય Node યુનિટ સ્યુટને માપે છે અને તેના દ્વારા પહોંચવામાં આવતા સોર્સને સમાવે છે, જેમાં `open-sse` પણ સામેલ છે. તે હજી સુધી Vitest કવરેજને એક જ એકીકૃત રિપોર્ટમાં મર્જ કરતું નથી. આ મર્જ પછીથી કરવું યોગ્ય છે, પરંતુ 60% -> 80% સુધીની પ્રગતિ શરૂ કરવા માટે તે અવરોધ નથી.