توثيق الموديولز
حالات اختبار الجودة
حالات اختبار وظيفية، واجهة، تجاوب، RTL، SEO.
مكتمل
QC Showcase يتحقّق أن بوّابات التحقّق معروضة صح، أن ربط رسم الكيانات يعمل (نقر مؤسس → ملف مؤسس)، أن إصدار JSON-LD Organization كامل، وأن مرآة AR مكتوبة تحريرياً.
فحوصات وظيفية (لكل شركة)
- route التفاصيل يعيد 200 في EN و AR.
- لوحة الشعار تُعرض (شعار حقيقي أو fallback بالاسم). لا أيقونة صورة مكسورة.
- شارة Verified تظهر أعلى-يمين (LTR) / أعلى-يسار (RTL) حين isVerified=true.
- شارات القطاع + المرحلة + الدولة تُعرض بتسميات مترجَمة (lookups `startup.sector.<key>` تنجح).
- CTA Visit Website يفتح في tab جديد بـ rel="noopener external" حين يوجد websiteUrl.
- كرت snapshot يعرض القطاع / المرحلة / المقر / سنة التأسيس صح.
فحوصات Cross-module
- كل founderId في founderIds[] يحلّ لـ Founder Profile حقيقي (لا كروت مؤسّسين مكسورة).
- المؤسّسون المرتبطون يظهرون كأوّل الإشارات في كتلة Related Ecosystem Signals.
- الفرص المقترحة آلياً تطابق قطاع + مرحلة + دولة الشركة (لا تطابقات خاطئة واضحة).
- المقالات التحريرية الظاهرة في الكتلة تذكر الشركة فعلاً (تحقّق mentionedStartupIds[]).
فحوصات SEO / AEO
- <title>، meta description، canonical، hreflang كلها مكتوبة.
- JSON-LD @type هو `Organization`. مصفوفة founder: Person[] طولها يطابق founderIds[].
- foundingDate يطابق حقل foundedYear. address.addressCountry هو رمز ISO-2 للدولة.
- صورة OG تُعرض صح على LinkedIn / X (1200x630 مع overlay اسم العلامة حين لا يوجد شعار).
فحوصات AR / RTL
- التبديل لـ /ar/ يعكس الـ Layout؛ chevrons والأسهم تنعكس عبر `.icon-flip`.
- الـ tagline العربي + الوصف مكتوبان، لا ترجمات حرفية.
- اسم العلامة يستخدم name_ar عند التأليف، fallback إلى name خلاف ذلك.
