import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:student_app/presentation/screens/vocational/vocational_training_screen.dart'; void main() { testWidgets('VocationalTrainingScreen EV lab: renders chassis blueprint, isolated component canvas, and toggles MSD', (tester) async { await tester.binding.setSurfaceSize(const Size(900, 3000)); addTearDown(() => tester.binding.setSurfaceSize(null)); await tester.pumpWidget( const MaterialApp( home: Scaffold( body: VocationalTrainingScreen(), ), ), ); await tester.pump(); // 1. Verify main header and directory tab expect(find.textContaining('مؤسسة التدريب المهني'), findsOneWidget); expect(find.textContaining('دليل الـ 140 مهنة'), findsOneWidget); expect(find.textContaining('مختبر فحص المركبات الكهربائية'), findsOneWidget); // 2. Switch to EV Diagnostic Lab tab await tester.tap(find.textContaining('مختبر فحص المركبات الكهربائية')); await tester.pump(); // Verify car blueprint and telemetry expect(find.text('مخطط هيكل السيارة الكهربائية وتنظيم القطاعات'), findsOneWidget); expect(find.text('الشحن (SoC)'), findsOneWidget); expect(find.text('جهد الكابلات'), findsOneWidget); expect(find.text('حلقة القفل HVIL'), findsOneWidget); // Verify Multimeter display expect(find.textContaining('جهاز الفحص الرقمي'), findsOneWidget); expect(find.text('384.0'), findsOneWidget); expect(find.text('V DC'), findsWidgets); // Verify Component Anatomy Card with 3 tabs and canvas expect(find.text('تشريح القطاع والرسم 🔬'), findsOneWidget); expect(find.text('طريقة الربط والشبك 🔗'), findsOneWidget); expect(find.text('الفحص وقراءة العداد 📟'), findsOneWidget); expect(find.text('المجسات متصلة بالقطعة'), findsOneWidget); // 3. Toggle probes placement await tester.tap(find.text('المجسات متصلة بالقطعة')); await tester.pump(); expect(find.text('المجسات مرفوعة'), findsOneWidget); await tester.tap(find.text('المجسات مرفوعة')); await tester.pump(); expect(find.text('المجسات متصلة بالقطعة'), findsOneWidget); // 4. Test detail tabs // Switch to 'طريقة الربط والشبك 🔗' await tester.tap(find.text('طريقة الربط والشبك 🔗')); await tester.pump(); expect(find.textContaining('مسار التوصيل والشبك'), findsOneWidget); // Switch to 'الفحص وقراءة العداد 📟' await tester.tap(find.text('الفحص وقراءة العداد 📟')); await tester.pump(); expect(find.textContaining('طريقة الفحص بالملتيميتر'), findsOneWidget); // 5. Test MSD Service Plug disconnect (Zero voltage verification) expect(find.textContaining('نزع قابس الأمان يدويّاً'), findsOneWidget); await tester.tap(find.textContaining('نزع قابس الأمان يدويّاً')); await tester.pump(); // After pulling MSD, pack voltage drops to 0.00 V expect(find.text('0.00'), findsWidgets); expect(find.textContaining('خلو الجهد مؤكد'), findsOneWidget); // 6. Select another component: Inverter & Motor await tester.tap(find.textContaining('محول القدرة')); await tester.pump(); // Verify multimeter and anatomy update for Inverter expect(find.text('0.18'), findsOneWidget); expect(find.text('Ω'), findsWidgets); expect(find.text('مقاومة ملفات المحرك Ω'), findsOneWidget); }); }