79 lines
10 KiB
Markdown
79 lines
10 KiB
Markdown
# نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina
|
||
|
||
این سند شامل استخراج و فهرست کامل تمامی قابلیتهای کاربرمحور، فرمها، جریانهای خرید و احراز هویت، عملیات CRUD پنل مدیریت و حالتهای مرزی (Edge Cases) در پلتفرم Canina است.
|
||
|
||
---
|
||
|
||
## ۱. معماری و نقشهای کاربری (User Roles)
|
||
1. **مهمان / کاربر عمومی (Guest / Public User)**:
|
||
- مشاهده لندینگ اصلی و بنرها
|
||
- جستجو و فیلتر محصولات در آرشیو فروشگاه (`/shop`)
|
||
- مشاهده صفحه جزئیات محصول (PDP)، دوزبندی و مشخصات مکمل
|
||
- افزودن به سبد خرید و مدیریت مقادیر در Drawer سبد خرید
|
||
- جریان تسویهحساب (Checkout Flow) با ثبت آدرس و اطلاعات تماس
|
||
- ثبت درخواست همکاری تجاری / داروخانهای (`/b2b`)
|
||
- ثبت فرم تماس و استعلام مشاوره دارویی (`/contact`)
|
||
- پیگیری وضعیت سفارش با کد پیگیری (`/track`)
|
||
- مطالعه وبلاگ (`/blog`) و مقالات دانشنامه دارویی (`/wiki/[slug]`)
|
||
- مشاهده صفحه ویدیوهای آموزشی (`/videos`)
|
||
- جستجوی سراسری محصولات و مقالات (`/search`)
|
||
|
||
2. **کاربر ثبتنامشده / صاحب پت (Authenticated User / Pet Owner)**:
|
||
- ورود/ثبتنام با شماره موبایل و کد تایید OTP (`/profile` یا مودال ورود)
|
||
- مدیریت پروفایل کاربری و آدرسها
|
||
- مدیریت پروفایل پتها (سگ/گربه، نژاد، وزن، سن، بیماریهای زمینهای)
|
||
- داشبورد سوابق سفارشات و نسخهها (`/dashboard`)
|
||
- ثبت تیکت پشتیبانی و استعلام دارویی
|
||
|
||
3. **مدیر ارشد و کادر مدیریت (Admin / Store Manager)**:
|
||
- احراز هویت با ایمیل/رمز عبور یا OTP در پنل مدیریت (`/login`)
|
||
- مدیریت محصولات (ایجاد، ویرایش، حذف، قیمتگذاری، کنترل موجودی، گالری، فیلدهای پیشرفته سئو SERP)
|
||
- مدیریت دستهبندیها و ویژگیهای درمانی
|
||
- مدیریت مقالات وبلاگ و دانشنامه تخصصی (Wiki)
|
||
- مدیریت و تغییر وضعیت سفارشات (Orders)
|
||
- بررسی و تایید درخواستهای همکاری تجاری B2B و فرمهای تماس
|
||
- تنظیمات عمومی سایت، درگاههای پرداخت، پیامک و سئو
|
||
|
||
---
|
||
|
||
## ۲. ماتریس جریانها و قابلیتهای کاربرمحور (Feature & Flow Matrix)
|
||
|
||
| کد | بخش / صفحه | قابلیت / سناریو | Happy Path | ورودی نامعتبر / منفی | حالت مرزی / Edge Case | وضعیت فعلی تست |
|
||
|---|---|---|---|---|---|---|
|
||
| **ST-01** | صفحه اصلی (`/`) | بارگذاری هدر، منوها، بنر اسلایدر، محصولات برگزیده | ✅ | ❌ | لود در شبکه کند | ✅ تست ضمنی |
|
||
| **ST-02** | فروشگاه (`/shop`) | فیلتر دستهبندی، مرتبسازی، جستجو و صفحهبندی | ✅ | جستجوی بدون نتیجه | فیلتر همزمان چندگانه | ⚠️ ناقص |
|
||
| **ST-03** | جزئیات محصول (`/shop/[slug]`) | تغییر وزن/دوز، ماشینحساب مصرف پت، افزودن به سبد | ✅ | محصول ناموجود | گالری تصاویر چندگانه | ⚠️ ناقص |
|
||
| **ST-04** | سبد خرید (Cart Drawer) | افزایش/کاهش تعداد، حذف آیتم، محاسبه جمع کل | ✅ | سبد خرید خالی | کوپن تخفیف نامعتبر | ⚠️ ناقص |
|
||
| **ST-05** | تسویه حساب (`/checkout`) | ثبت اطلاعات گیرنده، انتخاب روش ارسال و پرداخت | ✅ | اعتبارسنجی فیلدهای ضروری | لغو پرداخت و بازگشت | ✅ پوشش داده شد |
|
||
| **ST-06** | همکاری تجاری (`/b2b`) | ارسال فرم همکاری کلینیک/پتشاپ با مدارک | ✅ | فیلدهای ناقص/موبایل اشتباه | ارسال فرم تکراری | ✅ پوشش داده شد |
|
||
| **ST-07** | تماس با ما (`/contact`) | ارسال پیام مشاوره و استعلام دارویی | ✅ | ایمیل/موبایل نامعتبر | فیلد پیام خالی | ✅ پوشش داده شد |
|
||
| **ST-08** | وبلاگ و دانشنامه (`/blog`, `/wiki`) | مشاهده مقالات، جستجو، جدول ترکیبات دارویی | ✅ | اسلاگ ناموجود (404) | لینکهای بینمقالات | ✅ پوشش داده شد |
|
||
| **ST-09** | پیگیری سفارش (`/track`) | استعلام وضعیت سفارش با شماره موبایل و کد سفارش | ✅ | کد پیگیری نامعتبر | سفارش یافت نشد | ❌ بدون تست |
|
||
| **ST-10** | جستجوی سراسری (`/search`) | سرچ زنده محصولات، پیشنهادات هوشمند | ✅ | کلمه کلیدی بدون نتیجه | عبارات خاص فارسی/انگلیسی | ❌ بدون تست |
|
||
| **ST-11** | احراز هویت و ثبتنام (`AuthModal`) | لاگین/ثبتنام با OTP، فرم ورود با پسورد | ✅ | کد OTP اشتباه یا منقضی | خروج از حساب (Logout) | ⚠️ نیازمند تست اختصاصی |
|
||
| **ST-12** | بازیابی و فراموشی رمز عبور | درخواست ریست پسورد با پیامک OTP و تغییر رمز | ✅ | شماره اشتباه / کد نامعتبر | تلاشهای بیش از حد (Rate limit) | ⚠️ نیازمند تست اختصاصی |
|
||
| **ST-13** | صفحات خطا و روتهای نامعتبر | رندر صفحه ۴۰۴ سفارشی، خطای ۵۰۰ و بازگشت به خانه | ✅ | ورود به آدرسهای ناموجود | خطای کرش سرور یا کامپوننت | ⚠️ نیازمند تست اختصاصی |
|
||
| **SEC-01**| امنیت و اعتبارسنجی ورودیها | جلوگیری از XSS و SQLi در جستجو و فرمهای تماس | ✅ | ارسال اسکریپت `<script>` | مقادیر غیرمجاز طولانی | ⚠️ نیازمند تست اختصاصی |
|
||
| **SEC-02**| کنترل هجوم و Rate Limiting | اعمال Cooldown در ارسال پیامک OTP (۶۰ ثانیهای) | ✅ | درخواست مکرر OTP در بازه کوتاه | خطای `429 Too Many Requests` | ⚠️ نیازمند تست اختصاصی |
|
||
| **CONC-01**| مدیریت همزمانی و موجودی انبار | رقابت همزمان دو کاربر برای خرید آخرین موجودی کالا | ✅ | اتمام موجودی حین پرداخت | ثبت همزمان بیش از موجودی | ⚠️ نیازمند تست بار |
|
||
| **AD-01** | لاگین ادمین (`/login`) | ورود با رمز عبور و سشن توکن JWT | ✅ | رمز اشتباه / دسترسی غیرمجاز | سشن منقضیشده | ✅ پوشش داده شد |
|
||
| **AD-02** | سطوح دسترسی و رولهای ادمین | دسترسی SUPER_ADMIN در برابر محدودیتهای روت | ✅ | تلاش کاربر عادی برای ورود به ادمین | دسترسی به صفحات بدون مجوز | ⚠️ نیازمند تست اختصاصی |
|
||
| **AD-03** | مدیریت محصولات (`/products`) | ساخت، ویرایش، تب سئو، آپلود تصویر و حذف | ✅ | نام خالی / فرمت اشتباه | مقادیر طولانی سئو | ✅ پوشش داده شد |
|
||
| **AD-04** | مدیریت سفارشات (`/orders`) | فیلتر وضعیت، مشاهده جزئیات، تغییر وضعیت به ارسالشده | ✅ | تغییر غیرمجاز وضعیت | لیست سفارش خالی | ✅ پوشش داده شد |
|
||
| **AD-05** | مدیریت B2B (`/b2b`) | مشاهده درخواستهای دریافتی، تغییر وضعیت و یادداشت | ✅ | بدون داده | تایید نهایی همکاری | ✅ پوشش داده شد |
|
||
| **AD-06** | مدیریت مقالات (`/blogs`) | ایجاد مقاله، ویرایش تگها، وضعیت انتشار | ✅ | عنوان خالی | ویرایش محتوای حجیم | ✅ پوشش داده شد |
|
||
| **AD-07** | تنظیمات سئو و عمومی (`/settings`) | تغییر متادیتا، فعال/غیرفعال کردن حالت کاتالوگ | ✅ | ساختار نامعتبر JSON | ذخیره فوری تنظیمات | ⚠️ نیازمند تست |
|
||
|
||
---
|
||
|
||
## ۳. برنامه تکمیل و توسعه تستهای مفقود (Action Plan)
|
||
برای رسیدن به پوشش ۱۰۰٪ سیستم، فایلهای تست جدید زیر باید ایجاد و تستهای موجود با رویکرد پایداری انتخابگرها و پوشش سناریوهای منفی بازنویسی شوند:
|
||
|
||
1. `tests/e2e/storefront/shop-filter-search.spec.ts`: تست کامل جستجو، فیلتر دستهها، ماشینحساب دوز و حالتهای بدون نتیجه.
|
||
2. `tests/e2e/storefront/cart-operations.spec.ts`: تست تعاملی سبد خرید، تغییر تعداد، حذف، کوپن تخفیف و سقف خرید.
|
||
3. `tests/e2e/storefront/order-tracking.spec.ts`: تست پیگیری سفارشات با سناریوهای موفق و ناموفق.
|
||
4. `tests/e2e/storefront/user-auth-pets.spec.ts`: تست ورود کاربر، OTP، اضافه کردن پت جدید و پروفایل.
|
||
5. `tests/e2e/admin/admin-orders-flow.spec.ts`: تست مدیریت سفارشات، تغییر وضعیت فاکتور و فیلترها در پنل مدیریت.
|
||
6. `tests/e2e/admin/admin-blogs-crud.spec.ts`: تست ایجاد و ویرایش مقالات وبلاگ و دانشنامه در پنل ادمین.
|
||
7. `tests/e2e/admin/admin-b2b-submissions.spec.ts`: تست مشاهده و مدیریت فرمهای ثبت شده B2B و تماس.
|