84 lines
3.8 KiB
Dart
84 lines
3.8 KiB
Dart
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);
|
|
});
|
|
}
|