تخطَّ إلى المحتوى الرئيسي

توثيق الموديولز

حالات اختبار الجودة

حالات اختبار وظيفية، واجهة، تجاوب، RTL، SEO.

مكتمل

الـ QC للتغطية يُرَكِّز على ستّ أبعاد: التوجيه (المساران العامّان)، سلامة البيانات (parentEventId يُحَلَّ + كل mentionedId يُحَلَّ)، الرسم المُتَخَصِّص-بالـ-kind (الـ 5 متغيّرات kind ترسم صحيحاً)، إفصاح الراعي (مرئي + غير-قابل-للإزالة على sponsor-spotlight)، صلاحية JSON-LD (متغيّرات NewsArticle / Article / BlogPosting تَتحقّق مقابل schema.org)، وصحّة البحث العكسي (الإشارات تَظهر على كل ملف entity مُقتَبَس).

اختبارات التوجيه

  • /coverage/:slug يُرجع 200 لكل مقالة منشورة في EN + AR.
  • slug مجهول تحت /coverage/:slug يُرجع 404 (ليس 500)، يَرسم تخطيط not-found.
  • /coverage/design-system يُرجع 200 في EN + AR.
  • لا يوجد مسار فهرس /coverage/ — تأكَّد أن /coverage/ يُرجع 404 (هذا مقصود، ليس bug).

اختبارات سلامة البيانات

  • parentEventId لكل CoverageArticle يُحَلَّ إلى CalendarEvent موجود في mock-calendar-events. البناء يَفشل (TS يَلتقط عند الترجمة) لو حاولت نشر CoverageArticle بـ parentEventId مفقود.
  • كل mentionedFounderId / mentionedStartupId / mentionedOpportunityId / mentionedFileId يُحَلَّ. الـ IDs المكسورة تُجَرَّد بصمت عند الرسم مع console.warn في التطوير.
  • تفرّد الـ slug: لا مقالتا تغطية تَتشاركان slug عبر مجموعة البيانات.
  • عند النشر، parentEvent.coverageStatus تَنتقل إلى 'covered' بالضبط مرّة واحدة حتى حين تَتشارك عدة مقالات تغطية نفس الوالد.

اختبارات الرسم المُتَخَصِّص-بالـ-kind

  • kind="recap" → شارة "RECAP" أزرق، لا شريط إفصاح، JSON-LD @type=NewsArticle.
  • kind="analysis" → شارة "ANALYSIS" كهرماني، إفصاح "Editorial perspective" مرئي، JSON-LD @type=Article.
  • kind="highlights" → شارة "HIGHLIGHTS" أخضر، عقدة ImageGallery JSON-LD حين 3+ figures حاضرة.
  • kind="pitch-result" → شارة "PITCH RESULT" بنفسجي، JSON-LD يَشمل عقدة Event subEvent للمسابقة مع خصائص offers + competitor.
  • kind="sponsor-spotlight" → شارة "SPONSORED" تَحلّ محلّ شارة kind، خلفية مُلَوَّنة-بصبغة-الراعي، شريط إفصاح في أعلى الجسم، JSON-LD @type=BlogPosting مع خاصية sponsor مضبوطة.

اختبارات البحث العكسي

  • لكل mentionedFounderId، ملف المؤسّس المُقابل يَرسم شريط "Mentioned in coverage" يَشمل هذه المقالة.
  • لكل mentionedStartupId، صفحة تفاصيل الشركة تَرسم شريط "Mentioned in coverage" يَشمل هذه المقالة.
  • صفحة تفاصيل الفعالية الوالد تَرسم المقالة في قسم "Coverage" خاصّتها.