ifnex/docs/INSTALL-3.11.fa.md
Kazem Alghasi 8d61eb19d5 feat(uat): implement smoke test command and UAT documentation
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
2026-11-01 11:36:25 +03:30

184 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📋 بستهٔ فاز ۳.۱۱ — 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، سند مالی) در نسخه‌های
آتی آورده خواهند شد.