Allmine API

Nest test gap planı

~15 dkOpsBackendTaslak

Eksik test kapsamı ve öncelik planı

Nest Test Gap Planı

Mühendislik notu

Bu sayfa entegratör yol haritasından çok ekip içi operasyon/backlog içeriği taşır. Entegrasyon için API Reference ve ilgili ürün rehberlerini kullanın.

Generated at: 2026-03-23 (Europe/Istanbul)

1) Snapshot

  • Hedef: Tüm repo için Nest test boşluklarını çıkarıp eksikleri kapatmaya yönelik uygulanabilir backlog üretmek.
  • Envanter doğrulama komutu: npm run test -- --listTests
  • Jest tarafından görülen spec dosyası: 148
  • Testlenmesi beklenen hedef class dosyası: 310
  • Test referansı bulunan class dosyası: 151
  • Test boşluğu olan class dosyası: 159
  • Kabul hedefi: Global statement/function >= 70%, branch >= 60%.

Yöntem

  • Gap analizi, src altında controller/service/usecase/use-case/repository/gateway/guard/strategy/validator/validate desenine uyan dosyaları çıkarır.
  • Her hedef dosyadaki export class adları, repo içindeki *.spec.ts ve *.e2e-spec.ts içeriklerinde referans araması ile eşleştirilir.
  • Eşleşme yoksa dosya backlog'a uncovered olarak eklenir.

Sınırlamalar

  • Bu yöntem heuristic'tir; false positive/false negative riski vardır.
  • Sınıf adı farklı import alias ile kullanılıyorsa otomatik tespit kaçırabilir.
  • Bu nedenle her backlog maddesi için manuel doğrulama adımı zorunludur.

2) Önceliklendirme Matrisi

ModülUncoveredÖncelik
live-stream35P0
legal-documents14P0
credit-packages13P0
integrations13P0
maintenance13P0
live-stream-feedback7P1
email6P1
follow6P1
notifications6P1
users6P1
leaderboard5P1
live-stream-chat5P1
auth4P2
faq3P2
media3P2
outbox3P2
gift2P2
search2P2
version2P2
app1P2
block1P2
chat1P2
contact1P2
file-upload1P2
live-stream-ban1P2
message1P2
participant1P2
queues1P2
reports1P2
user-settings1P2
  • P0 toplam madde: 88
  • P1 toplam madde: 41
  • P2 toplam madde: 30

3) Dalga Planı (P0 / P1 / P2)

P0 (Hedef: 2026-04-15)

  • Modüller: live-stream (35), legal-documents (14), integrations (13), credit-packages (13), maintenance (13).
  • Amaç: Ürün riski yüksek domain akışlarında temel güvenceyi tamamlamak.
  • Çıkış kriteri: P0 kapsamındaki yeni testlerin tamamı yeşil; dalga sonunda npm run test ve npm run test:cov çalıştırılmış olmalı.

P1 (Hedef: 2026-05-15)

  • Modüller: live-stream-feedback (7), email (6), notifications (6), users (6), follow (6), live-stream-chat (5), leaderboard (5).
  • Amaç: Kullanıcı etkisi yüksek orta riskli akışlarda kapsam boşluklarını kapatmak.
  • Çıkış kriteri: P1 kapsamındaki testlerin tamamı yeşil; regresyon ve flaky kontrolü tamamlanmış olmalı.

P2 (Hedef: 2026-06-15)

  • Modüller: auth (4), media (3), faq (3) ve kalan düşük etkili controller/service/repository boşlukları.
  • Amaç: Kalan teknik borçları temizleyerek global kapsam hedefini tutturmak.
  • Çıkış kriteri: Global statement/function >= 70%, branch >= 60%.

Minimum Senaryo Seti

  • Controller testleri: auth/guard, validation, success, hata mapping.
  • Use-case/Service testleri: happy path, domain hata, dependency failure, boundary.
  • Repository testleri: query filter, pagination/sort, not-found/null, write failure.

4) Dosya Bazlı Backlog

Satır formatı:

- [ ] <absolute-or-repo-path> | katman(use-case/controller/service/repository) | öncelik(P0/P1/P2) | test tipi(unit/integration) | owner | durum

Toplam backlog satırı: 159 (Gap sayısı ile eşleşmeli: 159).

  • src/credit-packages/credit-packages.controller.ts | controller | P0 | integration | TBD | Todo
  • src/credit-packages/repository/credit-package.repository.ts | repository | P0 | integration | TBD | Todo
  • src/credit-packages/repository/credit-transaction.repository.ts | repository | P0 | integration | TBD | Todo
  • src/credit-packages/services/credit-packages.service.ts | service | P0 | unit | TBD | Todo
  • src/credit-packages/use-cases/add-credits-to-user.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/credit-packages/use-cases/create-credit-package.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/credit-packages/use-cases/delete-credit-package.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/credit-packages/use-cases/get-credit-package-by-id.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/credit-packages/use-cases/get-credit-packages.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/credit-packages/use-cases/get-user-transactions.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/credit-packages/use-cases/manually-add-credits-to-user.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/credit-packages/use-cases/purchase-credit-package.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/credit-packages/use-cases/update-credit-package.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/integrations/agora-api/agora-api.controller.ts | controller | P0 | integration | TBD | Todo
  • src/integrations/agora-api/use-cases/get-channel-list.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/integrations/agora-api/use-cases/get-channel-user-list.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/integrations/revenuecat/revenuecat-webhook.controller.ts | controller | P0 | integration | TBD | Todo
  • src/integrations/revenuecat/revenuecat.service.ts | service | P0 | unit | TBD | Todo
  • src/integrations/revenuecat/services/revenuecat-webhook.service.ts | service | P0 | unit | TBD | Todo
  • src/integrations/slack/slack.controller.ts | controller | P0 | integration | TBD | Todo
  • src/integrations/slack/slack.service.ts | service | P0 | unit | TBD | Todo
  • src/integrations/stripe/services/stripe-webhook.service.ts | service | P0 | unit | TBD | Todo
  • src/integrations/stripe/stripe-webhook.controller.ts | controller | P0 | integration | TBD | Todo
  • src/integrations/stripe/stripe.controller.ts | controller | P0 | integration | TBD | Todo
  • src/integrations/stripe/stripe.service.ts | service | P0 | unit | TBD | Todo
  • src/integrations/twilio/twilio.service.ts | service | P0 | unit | TBD | Todo
  • src/legal-documents/repository/legal-document.repository.ts | repository | P0 | integration | TBD | Todo
  • src/legal-documents/repository/user-consent.repository.ts | repository | P0 | integration | TBD | Todo
  • src/legal-documents/services/consent-analytics.service.ts | service | P0 | unit | TBD | Todo
  • src/legal-documents/services/document-template.service.ts | service | P0 | unit | TBD | Todo
  • src/legal-documents/use-cases/get-active-document.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/legal-documents/use-cases/get-all-document-versions.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/legal-documents/use-cases/get-all-documents.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/legal-documents/use-cases/get-consent-analytics.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/legal-documents/use-cases/get-document-by-id.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/legal-documents/use-cases/get-document-with-template.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/legal-documents/use-cases/get-user-consents.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/legal-documents/use-cases/record-bulk-consent.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/legal-documents/use-cases/record-user-consent.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/legal-documents/use-cases/update-document.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/feedback/live-stream-feedback.controller.ts | controller | P0 | integration | TBD | Todo
  • src/live-stream/feedback/use-cases/create-live-stream-feedback.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/repository/internal/live-stream-repository.mutation.service.ts | repository | P0 | integration | TBD | Todo
  • src/live-stream/repository/internal/live-stream-repository.query.service.ts | repository | P0 | integration | TBD | Todo
  • src/live-stream/repository/internal/live-stream-repository.ranking.service.ts | repository | P0 | integration | TBD | Todo
  • src/live-stream/repository/live-stream-user-reminder.repository.ts | repository | P0 | integration | TBD | Todo
  • src/live-stream/repository/stream-billing-transaction.repository.ts | repository | P0 | integration | TBD | Todo
  • src/live-stream/services/billing/billing-charge.service.ts | service | P0 | unit | TBD | Todo
  • src/live-stream/services/billing/billing-duocrowd-settlement.service.ts | service | P0 | unit | TBD | Todo
  • src/live-stream/services/billing/billing-duoself-settlement.service.ts | service | P0 | unit | TBD | Todo
  • src/live-stream/services/billing/billing-lock-cache.service.ts | service | P0 | unit | TBD | Todo
  • src/live-stream/services/billing/billing-revenue-distributor.service.ts | service | P0 | unit | TBD | Todo
  • src/live-stream/services/live-stream-pre-start-notification.service.ts | service | P0 | unit | TBD | Todo
  • src/live-stream/services/live-stream-thumbnail.service.ts | service | P0 | unit | TBD | Todo
  • src/live-stream/services/live-stream-user-reminder-notification.service.ts | service | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/end-all-live-streams.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/get-active-live-streams.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/get-active-streams-viewer-counts.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/get-all-live-streams.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/get-catch-streamers.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/get-featured-streams.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/get-funded-scheduled-streams.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/get-live-stream-by-id.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/get-live-stream-recap.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/get-live-stream-transactions.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/get-user-active-stream.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/get-viewer-count.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/join-live-stream-as-creator.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/mark-guest-invite-accepted.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/most-watched-creators.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/ready-to-fund.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/search-live-streams.use-case.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/soft-delete-live-stream.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/update-live-stream-replay-settings.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/live-stream/use-cases/whats-live-now.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/maintenance/maintenance.controller.ts | controller | P0 | integration | TBD | Todo
  • src/maintenance/repository/maintenance.repository.ts | repository | P0 | integration | TBD | Todo
  • src/maintenance/services/maintenance-scheduler.service.ts | service | P0 | unit | TBD | Todo
  • src/maintenance/use-cases/cancel-maintenance.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/maintenance/use-cases/check-platform-maintenance.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/maintenance/use-cases/complete-maintenance.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/maintenance/use-cases/create-maintenance.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/maintenance/use-cases/delete-maintenance.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/maintenance/use-cases/get-all-maintenances.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/maintenance/use-cases/get-maintenance-by-id.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/maintenance/use-cases/get-maintenance-status.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/maintenance/use-cases/start-maintenance.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/maintenance/use-cases/update-maintenance.usecase.ts | use-case | P0 | unit | TBD | Todo
  • src/email/email.controller.ts | controller | P1 | integration | TBD | Todo
  • src/email/email.service.ts | service | P1 | unit | TBD | Todo
  • src/email/services/email-template.service.ts | service | P1 | unit | TBD | Todo
  • src/email/use-cases/send-otp-email.use-case.ts | use-case | P1 | unit | TBD | Todo
  • src/email/use-cases/send-welcome-email.use-case.ts | use-case | P1 | unit | TBD | Todo
  • src/email/use-cases/test-email.use-case.ts | use-case | P1 | unit | TBD | Todo
  • src/follow/follow.controller.ts | controller | P1 | integration | TBD | Todo
  • src/follow/use-cases/get-followers.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/follow/use-cases/get-following.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/follow/use-cases/get-mutuals.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/follow/use-cases/is-following.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/follow/use-cases/unfollow-user.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/leaderboard/leaderboard.controller.ts | controller | P1 | integration | TBD | Todo
  • src/leaderboard/use-cases/get-paginated-biggest-boost-rankings.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/leaderboard/use-cases/get-paginated-watch-time-rankings.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/leaderboard/use-cases/get-user-biggest-boost-rank.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/leaderboard/use-cases/get-user-watch-time-rank.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/live-stream-chat/repository/stream-reaction.repository.ts | repository | P1 | integration | TBD | Todo
  • src/live-stream-chat/repository/superlike.repository.ts | repository | P1 | integration | TBD | Todo
  • src/live-stream-chat/stream-chat.controller.ts | controller | P1 | integration | TBD | Todo
  • src/live-stream-chat/stream-chat.service.ts | service | P1 | unit | TBD | Todo
  • src/live-stream-chat/use-cases/send-superlike.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/live-stream-feedback/live-stream-feedback.controller.ts | controller | P1 | integration | TBD | Todo
  • src/live-stream-feedback/repository/live-stream-feedback.repository.ts | repository | P1 | integration | TBD | Todo
  • src/live-stream-feedback/use-cases/create-live-stream-feedback.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/live-stream-feedback/use-cases/delete-feedback.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/live-stream-feedback/use-cases/get-all-feedbacks.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/live-stream-feedback/use-cases/get-feedback-by-id.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/live-stream-feedback/use-cases/get-feedback-statistics.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/notifications/repository/device-token.repository.ts | repository | P1 | integration | TBD | Todo
  • src/notifications/repository/notification.repository.ts | repository | P1 | integration | TBD | Todo
  • src/notifications/use-cases/create-notification.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/notifications/use-cases/delete-notification.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/notifications/use-cases/delete-notifications.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/notifications/use-cases/update-notification-status.usecase.ts | use-case | P1 | unit | TBD | Todo
  • src/users/onboarding.controller.ts | controller | P1 | integration | TBD | Todo
  • src/users/services/internal/users-admin-analytics.internal-service.ts | service | P1 | unit | TBD | Todo
  • src/users/services/internal/users-discovery.internal-service.ts | service | P1 | unit | TBD | Todo
  • src/users/services/internal/users-profile.internal-service.ts | service | P1 | unit | TBD | Todo
  • src/users/services/internal/users-registration.internal-service.ts | service | P1 | unit | TBD | Todo
  • src/users/use-cases/change-username.use-case.ts | use-case | P1 | unit | TBD | Todo
  • src/app/app.service.ts | service | P2 | unit | TBD | Todo
  • src/auth/guards/throttler-auth.guard.ts | service | P2 | unit | TBD | Todo
  • src/auth/services/email-otp.service.ts | service | P2 | unit | TBD | Todo
  • src/auth/services/otp.service.ts | service | P2 | unit | TBD | Todo
  • src/auth/services/sms.service.ts | service | P2 | unit | TBD | Todo
  • src/block/block.controller.ts | controller | P2 | integration | TBD | Todo
  • src/chat/chat.controller.ts | controller | P2 | integration | TBD | Todo
  • src/contact/contact.controller.ts | controller | P2 | integration | TBD | Todo
  • src/faq/faq.controller.ts | controller | P2 | integration | TBD | Todo
  • src/faq/repository/faq.repository.ts | repository | P2 | integration | TBD | Todo
  • src/faq/use-cases/get-faq-by-id.usecase.ts | use-case | P2 | unit | TBD | Todo
  • src/file-upload/file-upload.controller.ts | controller | P2 | integration | TBD | Todo
  • src/gift/gift.controller.ts | controller | P2 | integration | TBD | Todo
  • src/gift/use-cases/calculate-total-gift.usecase.ts | use-case | P2 | unit | TBD | Todo
  • src/live-stream-ban/live-stream-ban.controller.ts | controller | P2 | integration | TBD | Todo
  • src/media/media.controller.ts | controller | P2 | integration | TBD | Todo
  • src/media/media.service.ts | service | P2 | unit | TBD | Todo
  • src/media/repository/media.repository.ts | repository | P2 | integration | TBD | Todo
  • src/message/message.gateway.ts | service | P2 | unit | TBD | Todo
  • src/outbox/services/domain-event-publisher.service.ts | service | P2 | unit | TBD | Todo
  • src/outbox/services/outbox-feature-flags.service.ts | service | P2 | unit | TBD | Todo
  • src/outbox/services/outbox-writer.service.ts | service | P2 | unit | TBD | Todo
  • src/participant/participant.controller.ts | controller | P2 | integration | TBD | Todo
  • src/queues/services/domain-outbox-queue.service.ts | service | P2 | unit | TBD | Todo
  • src/reports/reports.service.ts | service | P2 | unit | TBD | Todo
  • src/search/search.controller.ts | controller | P2 | integration | TBD | Todo
  • src/search/use-cases/unified-search.use-case.ts | use-case | P2 | unit | TBD | Todo
  • src/user-settings/user-settings.controller.ts | controller | P2 | integration | TBD | Todo
  • src/version/version.controller.ts | controller | P2 | integration | TBD | Todo
  • src/version/version.service.ts | service | P2 | unit | TBD | Todo

5) DoD ve Kabul Kriterleri

Dalga Bazlı Kalite Kapısı

  • P0 tamamlandığında hedef modüllerdeki yeni testler tamamen yeşil olmalı.
  • Her dalga sonunda npm run test ve npm run test:cov çalıştırılmalı, eşik kontrolü raporlanmalı.

PR Checklist

  • Yeni testler deterministic olmalı.
  • Mock/stub bağımlılıkları modül sınırına uygun olmalı.
  • Flaky test bulunmamalı.
  • Backlog maddesi kapatılırken ilgili test dosyası ve kapsam etkisi PR açıklamasına eklenmeli.

Varsayımlar

  • Gap analizi class adı + spec referansı heuristiğine dayanır; manuel doğrulama zorunludur.
  • Coverage çıktıları boş/eski olabilir; birincil kaynak mevcut repo envanteri ve Jest test listesidir.
  • Çalışma ağacı kirli olabilir; plan uygulaması mevcut kullanıcı değişikliklerine dokunmadan ilerlemelidir.

On this page