Files

85 lines
3.5 KiB
Dart
Raw Permalink Normal View History

2026-09-21 16:33:51 -04:00
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:hidalyx_drluiscastro/features/config/presentation/store/config_store.dart';
import 'package:hidalyx_drluiscastro/features/referrals/presentation/views/department_referral_modal_view.dart';
import 'package:hidalyx_drluiscastro/features/referrals/services/department_referral_pdf_service.dart';
void main() {
group('DepartmentReferralModalView Tests', () {
testWidgets('renders modal pre-populated with AlfaMedical department template', (tester) async {
final configStore = ConfigStore();
configStore.nombreDoctor = 'Dr. Luis A. Castro Sosa';
configStore.especialidad = 'Cirujano Urólogo';
configStore.descripEspecialidad = 'Enfermedades Vías Urinarias';
configStore.descripGeneral = 'Santiago, RD';
await tester.pumpWidget(
MaterialApp(
home: Scaffold(
body: DepartmentReferralModalView(
patientName: 'CARLOS DIAZ',
configStore: configStore,
),
),
),
);
await tester.pumpAndSettle();
expect(find.text('Referir a Departamento'), findsOneWidget);
expect(find.text('Dr. Luis A. Castro Sosa'), findsOneWidget);
expect(find.text('CIRUJANO URÓLOGO'), findsOneWidget);
expect(find.text('Crear / Imprimir Referimiento'), findsOneWidget);
expect(find.text('ESC para salir'), findsOneWidget);
// Verify default AlfaMedical department template content in the text field
final textField = tester.widget<TextField>(find.byType(TextField));
expect(textField.controller?.text, contains('Paciente: CARLOS DIAZ'));
expect(textField.controller?.text, contains('Referido al departamento de anestesiologia'));
expect(textField.controller?.text, contains('Plan: Realizar evaluación pre-anestesica'));
expect(textField.controller?.text, contains('Para realizar:'));
expect(textField.controller?.text, contains('Suite 408, 4ta planta.'));
expect(textField.controller?.text, contains('Gracias.'));
});
testWidgets('shows validation message when text is empty', (tester) async {
final configStore = ConfigStore();
await tester.pumpWidget(
MaterialApp(
home: Scaffold(
body: DepartmentReferralModalView(
patientName: 'CARLOS DIAZ',
configStore: configStore,
),
),
),
);
await tester.pumpAndSettle();
// Clear text field
await tester.enterText(find.byType(TextField), '');
await tester.pump();
final printBtn = find.text('Crear / Imprimir Referimiento');
await tester.tap(printBtn);
await tester.pump();
expect(find.text('Debe redactar el contenido del referimiento.'), findsOneWidget);
});
});
group('DepartmentReferralPdfService Tests', () {
test('builds department referral pdf bytes with 8.5x5.5 inch format', () async {
final bytes = await DepartmentReferralPdfService.buildDepartmentReferralPdf(
doctorName: 'Dr. Luis A. Castro Sosa',
specialty: 'Cirujano Urólogo',
subspecialty: 'Enfermedades Vias Urinarias',
generalContact: 'Santiago, RD. Tel: 809-583-2394',
referralText: 'Paciente: CARLOS DIAZ\n\nReferido al departamento de anestesiologia\nPlan: Realizar evaluación pre-anestesica\n\nPara realizar: Cistoscopia\n\nSuite 408, 4ta planta.\nGracias.',
);
expect(bytes, isNotEmpty);
expect(bytes.sublist(0, 4), equals([0x25, 0x50, 0x44, 0x46]));
});
});
}