Files
saqel/apps/student_app/test/vocational_training_screen_test.dart
T

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);
});
}