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
184 lines
5.9 KiB
Markdown
184 lines
5.9 KiB
Markdown
# 📋 بستهٔ فاز ۳.۱۱ — UAT نهایی کارفرما
|
||
|
||
تاریخ: ۱۴۰۴/۰۸/۱۱
|
||
نسخه: phase-3.11
|
||
|
||
---
|
||
|
||
## 🎯 هدف
|
||
|
||
این بسته فاز نهایی قبل از انتشار رسمی است. شامل:
|
||
|
||
1. **`ifnex:smoke-test`** — دستور E2E خودکار برای تست Post-Deploy
|
||
2. **۹ تست Feature** برای smoke-test
|
||
3. **سند UAT-3.11.md** — چکلیست ۴۳ موردی فارسی برای کارفرما
|
||
4. **فرم امضای تحویل** — قابل پرینت برای امضای رسمی
|
||
5. **بهروزرسانی 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 ← همین فایل
|
||
```
|
||
|
||
`★` = فایل جدید
|
||
|
||
---
|
||
|
||
## 🧪 تست روی لوکال
|
||
|
||
```powershell
|
||
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 دستی توسط کارفرما:
|
||
|
||
```bash
|
||
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` سبز بود:
|
||
|
||
```powershell
|
||
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:
|
||
|
||
```bash
|
||
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، سند مالی) در نسخههای
|
||
آتی آورده خواهند شد.
|