CallwiseDocs

الاختبارات

اختبارات الوحدة، واختبارات أمان قاعدة البيانات، واختبار الدخان من طرف إلى طرف.

الأمرماذا يغطيهيحتاج إلى
pnpm testاختبارات الوحدة: قواعد الأسعار، والمتجر (السلة والموافقة والطلبات)، ومستويات الوصول، ومولّد العرض التجريبي، ومحرك اختبار النصلا شيء
pnpm test:rlsاختبار واحد لكل ثابت أمني، بما في ذلك كتابات يجب أن تفشلSupabase محلي يعمل وقد أُعيد ضبطه
pnpm test:e2eاختبار دخان Playwright للعرض التجريبي، مع حجب شبكة الطرف الثالثPlaywright وChrome

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

pnpm test

تتحقق هذه، بين أمور أخرى، من أن كل خطة وحزمة وإضافة تُدرج عند $290 في الشهر أو دونه، ومن أن المتوسطات مثل مدة المعالجة لا تُجمع أبدًا عبر الأيام.

تتحقق اختبارات المتجر (pnpm --filter @callwise/store test) من رفض طلب بلا موافقة، ومن تخزين الموافقة مع طابعها الزمني وإصدار الشروط ونصها الحرفي، ومن صحة تواريخ بدء المدة وانتهائها وتجديدها، ومن أن إجمالي الطلب يساوي عرض السعر السنوي، ومن رفض الإضافات غير المتوافقة، ومن عدم وجود مسار استرداد. وللأسبوع المجاني تتحقق من أن الطلب الأول يحصّل $0 اليوم ويخزّن تاريخي التجربة وأول تحصيل، ومن أن طلبًا ثانيًا للبريد نفسه لا يحصل على تجربة ويُحصَّل اليوم، ومن أن مهمة اليوم 7 تحصّل مرة واحدة (تُشغَّل مرتين، وتحصيل واحد)، ولا تحصّل أبدًا قبل اليوم 7 ولا تجربة ملغاة، ومن أن الإلغاء أثناء التجربة لا يحصّل شيئًا وأن الإلغاء بعد أول تحصيل يُرفض، ومن أن بيانات البطاقة لا تُخزَّن كاملة أبدًا.

اختبارات أمان قاعدة البيانات

pnpm supabase:web:start
pnpm supabase:web:reset
pnpm test:rls

يسجّل كل اختبار الدخول بصفته مستخدمًا مبذورًا ويحاول شيئًا تمنعه القواعد: عضو ينشر نصًا، أو مالك يرفع خطته بنفسه، أو مستخدم يقرأ مكالمات مساحة عمل أخرى. ينجح الاختبار عندما يرفض Postgres.

من طرف إلى طرف

pnpm test:e2e

يفتح العرض التجريبي في متصفح وينقر عبر الصفحات الرئيسية. تُحجب الطلبات إلى أي مضيف خارجي، فيُثبت الاختبار أيضًا أن العرض التجريبي لا يجري مكالمات خارجية.

On this page