Add `ifnex:smoke-test` console command to perform automated end-to-end checks post-deployment, including database connectivity, essential data presence, and API endpoint availability. - Implement `IfnexSmokeTest` command for automated system verification - Add feature tests for the smoke test command - Create `UAT-3.11.md` containing the client acceptance checklist - Update `CLIENT_DELIVERY.md` to reflect phase 3.10 and 3.11 completion - Register the new command in `bootstrap/app.php` - Add project documentation directory
5.9 KiB
📋 بستهٔ فاز ۳.۱۱ — UAT نهایی کارفرما
تاریخ: ۱۴۰۴/۰۸/۱۱ نسخه: phase-3.11
🎯 هدف
این بسته فاز نهایی قبل از انتشار رسمی است. شامل:
ifnex:smoke-test— دستور E2E خودکار برای تست Post-Deploy- ۹ تست Feature برای smoke-test
- سند UAT-3.11.md — چکلیست ۴۳ موردی فارسی برای کارفرما
- فرم امضای تحویل — قابل پرینت برای امضای رسمی
- بهروزرسانی CLIENT_DELIVERY.md — ثبت فاز ۳.۱۰ و ۳.۱۱
📦 نحوهٔ نصب
این ZIP حاوی ۵ فایل است که باید روی ریشهٔ پروژه اکسترکت شوند (Replace).
مسیر اکسترکت
C:\xampp\htdocs\IFNEX-Logistics\
ساختار فایلها
ifnex-phase-3.11-updates.zip
├── 04_Laravel/
│ ├── app/Console/Commands/
│ │ └── IfnexSmokeTest.php ★ جدید
│ ├── bootstrap/
│ │ └── app.php ← ثبت دستور جدید
│ └── tests/Feature/Console/
│ └── IfnexSmokeTestTest.php ★ ۹ تست جدید
├── UAT-3.11.md ★ سند UAT کارفرما (۴۳ مورد)
├── CLIENT_DELIVERY.md ← بهروزرسانی فاز ۳.۱۰/۳.۱۱
└── docs/
└── INSTALL-3.11.fa.md ← همین فایل
★ = فایل جدید
🧪 تست روی لوکال
cd C:\xampp\htdocs\IFNEX-Logistics\04_Laravel
php artisan test
انتظار
مجموع تستها: ۷۳ (قبلی) + ۹ (IfnexSmokeTestTest) = ۸۲ تست / ۲۲۰+ assertion
همه باید سبز باشند.
تستهای اضافهشده
| Suite | تعداد | توضیح |
|---|---|---|
IfnexSmokeTestTest |
۹ | PASS scenario + ۶ FAIL scenario + custom URL + 422/500 handling |
🚀 استفاده روی سرور Production
پس از دیپلوی، قبل از شروع UAT دستی توسط کارفرما:
cd /var/www/system.ifnex.ir
# ۱. تستهای خودکار واحد
php artisan test
# انتظار: 82+ passed
# ۲. بررسی پیشاز-دیپلوی
php artisan ifnex:preflight
# انتظار: همهٔ بررسیها سبز
# ۳. تست E2E Post-Deploy
php artisan ifnex:smoke-test
# انتظار: همهٔ بررسیها سبز (شامل API endpoints)
# ۴. اگر از دامنهٔ دیگری استفاده میکنید:
php artisan ifnex:smoke-test --url=https://system.ifnex.ir
اگر هر کدام قرمز بود، UAT را شروع نکنید.
📋 چکلیست UAT کارفرما
سند UAT-3.11.md در ریشهٔ این بسته، چکلیست ۴۳ موردی فارسی برای کارفرماست.
بخشها:
| # | بخش | موارد |
|---|---|---|
| ۱ | دسترسی و SSL | ۳ |
| ۲ | احراز هویت مشتری | ۴ |
| ۳ | فرم سفارش Export | ۵ |
| ۴ | فرم سفارش Import | ۴ |
| ۵ | دفترچه آدرس (فاز ۳.۹) | ۳ |
| ۶ | اسناد PDF | ۴ |
| ۷ | تأیید سفارش توسط کارمند | ۳ |
| ۸ | چکلیست کارمند | ۲ |
| ۹ | پرداخت با کیف پول | ۲ |
| ۱۰ | پرداخت آنلاین (Zarinpal) | ۲ |
| ۱۱ | کد تخفیف | ۲ |
| ۱۲ | داشبورد و وضعیت مالی | ۳ |
| ۱۳ | اعتبار چندارزی | ۲ |
| ۱۴ | رهگیری مرسوله | ۲ |
| ۱۵ | پنل مدیریت Filament | ۲ |
| مجموع | ۴۳ |
در انتهای سند، فرم امضای تحویل رسمی برای امضای هر دو طرف وجود دارد.
🔧 دستور ifnex:smoke-test چه چیزی را تست میکند؟
دستور E2E خودکار Post-Deploy، ۲۵+ بررسی انجام میدهد:
زیرساخت
- ✅ اتصال دیتابیس
- ✅ وجود ۸ جدول اصلی (users, currencies, countries, system_settings, shipments, wallets, wallet_transactions, address_book_entries)
- ✅ قابلنوشتن بودن storage و bootstrap/cache
- ✅ اجرای config:cache و route:cache
دادهها
- ✅ ۵ ارز پایه موجود (USD/AED/EUR/CNY/IRR)
- ✅ نرخ ارزها غیر صفر (بهجز IRR که ۱ است)
- ✅ حداقل ۱۰۰ کشور در جدول countries
- ✅ ۴ نقش Spatie موجود (super_admin, admin, staff, customer)
- ✅ حداقل یک کاربر ادمین موجود
- ✅ تنظیمات سیستم (vat_rate, profit_margin, packing_cost)
API Endpoints
- ✅
GET /up→ 200 (health check) - ✅
GET /api/v1/countries→ 200 (public endpoint) - ✅
GET /api/v1/track/{invalid-awb}→ 404 یا 422 (نه ۵۰۰) - ✅
GET /api/v1/customer/profileبدون توکن → 401 (نه ۲۰۰ — تست امنیتی)
خروجی بهصورت جدول خوانا با PASS/FAIL، و کد ۰ یا ۱.
🚀 بعد از تست لوکال
اگر php artisan test سبز بود:
cd C:\xampp\htdocs\IFNEX-Logistics
git add .
git commit -m "feat(uat): phase 3.11 — ifnex:smoke-test E2E command + 9 tests + UAT-3.11.md checklist (43 items)"
git push origin main
سپس روی سرور Production:
cd /var/www/system.ifnex.ir
git pull origin main
php artisan ifnex:smoke-test --url=https://system.ifnex.ir
اگر سبز بود، سند UAT-3.11.md را به کارفرما بدهید تا UAT دستی را شروع کند.
🎯 گام بعدی
پس از امضای فرم تحویل توسط کارفرما، پروژه بهصورت رسمی منتشر میشود و وارد مرحلهٔ پشتیبانی میگردد. موارد تأخیری (i18n، SMS، سند مالی) در نسخههای آتی آورده خواهند شد.