Dağıtım notu. Test kodları (
tests/) yalıtılmış bir geliştirme ortamına bağlı olduğu için bu pakete dahil edilmedi; aşağıdaki sonuçlar o ortamda alınmıştır.Sonradan doğrulanan (2026-10-05). Modül netx.com.tr üzerinde (WHMCS 8.13.1, PHP 8.2, MariaDB 12.3.3) etkinleştirildi: şema geçişi, kanıt taraması,
AfterCronJobile saatlik ve günlük işler, genel yorum sayfası ve okuma API'si çalıştı. JS widget ve sunucuda çizilen blok gerçek bir tarayıcıda (Chromium 153) 360, 390 ve 1180 piksel genişlikte görsel olarak kontrol edildi. Canlı ortamda müşteri gönderiminden yayına uçtan uca akış ve gerçek e-posta gönderimi henüz doğrulanmadı.
Çalıştırma
PATH=<node20>/bin:$PATH NODE_PATH=<jsdom kurulu node_modules> ./tests/run_all.sh
| Paket | Ortam | Sonuç |
|---|---|---|
tests/php/run.php |
PHP 8.2.34 + yalıtılmış MariaDB 12.3.3 (canlı WHMCS 8.13.1'in tablo şemaları, sentetik veri, canlıyla aynı sql_mode), WHMCS'in Illuminate Capsule'u, WHMCS bağlantısı gibi utf8 |
286 / 286 (3 ardışık çalıştırmada aynı) |
tests/http/run_http.php |
PHP yerleşik sunucusu + gerçek api.php |
23 / 23 |
tests/whmcs/smarty_integration.php |
Gerçek WHMCS 8.13.1 bootstrap'ı (CLI), WHMCS\Smarty 3.1.48 + güvenlik politikası; modül verisi test veritabanından; WHMCS veritabanına yazmaz, derlenmiş şablon bırakmaz (eval:) |
10 / 10 |
tests/js/widget.test.js |
Node 20 + jsdom 29 | 31 / 31 |
examples/ |
PHP adaptörü sahte API'ye karşı (PHP 8.2 ve 8.5); WordPress ve Laravel yalnızca taklit cephelerle duman testi | 63/63 · 29/29 · 18/18 |
Kabul kriterleri eşlemesi
| # | Kriter | Kanıt |
|---|---|---|
| 1 | Ziyaretçi okur, yazamaz | K1 (API, sayfa, form giriş ister, girişsiz gönderim reddi) |
| 2 | Satın almayan/ödemeyen/teslim almayan yazamaz | K2 (Pending+ödenmemiş, Active+ödenmiş+kanıtsız, Fraud, başka hizmetin faturası, yabancı hizmet kimliği) |
| 3 | Geçmiş kullanıcı değerlendirebilir; kanıtsıza rozet yok | K3 (Terminated + Module Terminate, sonradan iade, yenileme kanıtı, gerekçeli teslim kaydı, eşleştirme değişse de kanıt korunur) |
| 4 | Bağlı kullanıcı / hesap bağlamı | K4 (sahip olmayan kullanıcı, izinler, IDOR okuma/kaldırma, yönetici olarak giriş, e-posta doğrulaması) |
| 5 | Bekleyen/reddedilen/spam/kaldırılan görünmez | K5 (API, Smarty blok, şema bloğu, yorum sayfası, bildirim formu, ısınmış önbellekten sonra) |
| 6 | Paralel gönderimde tek değerlendirme | K6 (8 eşzamanlı süreç → 1 kayıt, 1 bekleyen revizyon; çift tık idempotent) |
| 7 | Revizyon yayını değiştirmez; onay atomik | K7 |
| 8 | Tek sayım; sıfırda sahte puan yok | K8 (5,5,5,1 → 4; kategori ortalaması ortalaması değil) |
| 9 | Smarty ana sayfa + özel şablon; panel ana sayfasıyla karışmaz | smarty_integration.php (gerçek WHMCS Smarty) + K9 |
| 10 | Ad değişince eski kod çalışır; pasifleştirme tutarlı | K9/K10 |
| 11 | JS iki köken, çoklu blok, tekrar yükleme, çerezsiz | widget.test.js + K12 + HTTP |
| 12 | CORS yansıtmaz; özel veri yok | K12 + HTTP |
| 13 | "Daha Fazla Göster"/"Yorum Yap" hedefleri, açık yönlendirme yok | K13 + birim testleri |
| 14 | XSS/JSON-LD, SQLi, CSRF, IDOR, open redirect, CSV, oran sınırı, vekil IP | K14 + birim + HTTP |
| 15 | Yetkisiz yönetici aşamaz | K15 + "Yönetim paneli" grubu (doğrudan istek, toplu işlem, ekran görünürlüğü) |
| 16 | Cron tekrarında mükerrer yok, çıkış gözetilir, etkinleştirmede toplu e-posta yok | K16 + K20/K16 |
| 17 | Ad gizliliği, anonimleştirme önbelleği temizler | K17 + Maskeleme |
| 18 | Şema çoğalmaz, keyfi Product yok, UI = JSON-LD | K18 + gerçek Smarty |
| 19 | Mobil, klavye, durumlar, tema yalıtımı | K19 (sunucu işaretlemesi) + widget.test.js (durumlar, odak, .myr öneki) — görsel kontrol yapılmadı |
| 20 | Kurulum, yükseltme, devre dışı bırakma, paket | K20 + paket taraması (dist/) |
Çalıştırılamayan / doğrulanmayan kontroller
Bunlar başarılı sayılmamıştır:
- Canlı WHMCS'te etkinleştirme ve uçtan uca akış (gerçek giriş, WHMCS'in
requireloginsonrası geri dönüşü,ClientAreaPage/AfterCronJob/AfterModuleCreate/PreDeleteClientkancalarının gerçek tetiklenmesi, yönetim panelinin WHMCS kabuğu içinde görünümü): modül canlıda etkinleştirilmedi (kapsam gereği otomatik etkinleştirme yok). Kanca mantığı servis düzeyinde test edildi. - Gerçek e-posta gönderimi (
localAPI SendEmail/SendAdminEmail): testlerde sahte platform; şablon içerikleri ve birleştirme alanları canlıda bir kez denenmeli. - Gerçek tarayıcıda görsel/erişilebilirlik kontrolü (yıldız maskesi, koyu tema, 375 px düzen, ekran okuyucu): yalnızca jsdom ve işaretleme denetimi.
- WordPress ve Laravel gerçek kurulumda çalıştırılmadı.
- Rich Results Test / Search Console: canlı adres olmadan yapılamaz (adımlar
SEO-SEMA.md'de). - WHMCS 8.0–8.12 ve PHP 8.1 ile çalıştırılmadı.