fix test
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/semantics.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:fotodocumentation/controller/questionnaire_controller.dart';
|
||||
import 'package:fotodocumentation/controller/questionnaire_customer_controller.dart';
|
||||
import 'package:fotodocumentation/dto/questionnaire_customer_dto.dart';
|
||||
import 'package:fotodocumentation/dto/questionnaire_dto.dart';
|
||||
import 'package:fotodocumentation/pages/questionnaire/customer/questionnaire_customer_widget.dart';
|
||||
import 'package:fotodocumentation/pages/questionnaire/customer/questionnaire_delete_dialog.dart';
|
||||
import 'package:fotodocumentation/utils/global_router.dart';
|
||||
import 'package:fotodocumentation/utils/login_credentials.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
|
||||
import 'package:fotodocumentation/utils/di_container.dart';
|
||||
|
||||
import '../../../testing/test_utils.dart';
|
||||
import '../../../testing/test_utils.mocks.dart';
|
||||
|
||||
void main() {
|
||||
TestWidgetsFlutterBinding.ensureInitialized();
|
||||
DiContainer.instance.initState();
|
||||
DiContainer.instance.put(LoginCredentials, getDefaultLoginCredentials());
|
||||
group('Customer Test', () {
|
||||
testWidgets('Customer screen', (WidgetTester tester) async {
|
||||
setScreenSize(tester, 1024, 1024);
|
||||
|
||||
var controller = MockQuestionnaireCustomerController();
|
||||
var questionnaireController = MockQuestionnaireController();
|
||||
DiContainer.instance.put(QuestionnaireController, questionnaireController);
|
||||
DiContainer.instance.put(QuestionnaireCustomerController, controller);
|
||||
|
||||
when(controller.get(id: 1)).thenAnswer((_) async => _dto);
|
||||
when(controller.getAll("", "")).thenAnswer((_) async => _list);
|
||||
|
||||
await pumpAppConfig(tester, "${GlobalRouter.pathQuestionnaireHome}/${GlobalRouter.pathQuestionnaireCustomer}/1");
|
||||
verify(controller.get(id: 1)).called(1);
|
||||
|
||||
// Click on the first row (InkWell) to open the picture popup
|
||||
await tester.tap(find.byKey(Key("table_row_1")).first);
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
// Verify that the popup is shown by checking for the PictureWidget
|
||||
expect(find.byType(QuestionaireCustomerWidget), findsOneWidget);
|
||||
});
|
||||
|
||||
testWidgets('Customer delete yes', (WidgetTester tester) async {
|
||||
setScreenSize(tester, 1024, 1024);
|
||||
|
||||
var controller = MockQuestionnaireCustomerController();
|
||||
var questionnaireController = MockQuestionnaireController();
|
||||
DiContainer.instance.put(QuestionnaireController, questionnaireController);
|
||||
DiContainer.instance.put(QuestionnaireCustomerController, controller);
|
||||
|
||||
when(controller.get(id: 1)).thenAnswer((_) async => _dto);
|
||||
when(controller.getAll("", "")).thenAnswer((_) async => _list);
|
||||
when(questionnaireController.delete(argThat(isA<QuestionnaireDto>()))).thenAnswer((_) async => true);
|
||||
|
||||
await pumpAppConfig(tester, "${GlobalRouter.pathQuestionnaireHome}/${GlobalRouter.pathQuestionnaireCustomer}/1");
|
||||
verify(controller.get(id: 1)).called(1);
|
||||
|
||||
// Click on the first row (InkWell) to open the picture popup
|
||||
await tester.tap(find.byKey(Key("table_row_delete_1")).first);
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
// Verify that the popup is shown by checking for the PictureWidget
|
||||
expect(find.byType(QuestionaireDeleteDialog), findsOneWidget);
|
||||
|
||||
// Click the yes button to confirm delete
|
||||
await tester.tap(find.byKey(Key("questionnaire_delete_yes")));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
// Verify that the delete method was called on the picture controller
|
||||
verify(questionnaireController.delete(argThat(isA<QuestionnaireDto>()))).called(1);
|
||||
});
|
||||
|
||||
testWidgets('Customer delete no', (WidgetTester tester) async {
|
||||
setScreenSize(tester, 1024, 1024);
|
||||
|
||||
var controller = MockQuestionnaireCustomerController();
|
||||
var questionnaireController = MockQuestionnaireController();
|
||||
DiContainer.instance.put(QuestionnaireController, questionnaireController);
|
||||
DiContainer.instance.put(QuestionnaireCustomerController, controller);
|
||||
|
||||
when(controller.get(id: 1)).thenAnswer((_) async => _dto);
|
||||
when(controller.getAll("", "")).thenAnswer((_) async => _list);
|
||||
|
||||
await pumpAppConfig(tester, "${GlobalRouter.pathQuestionnaireHome}/${GlobalRouter.pathQuestionnaireCustomer}/1");
|
||||
verify(controller.get(id: 1)).called(1);
|
||||
|
||||
// Click on the first row (InkWell) to open the picture popup
|
||||
await tester.tap(find.byKey(Key("table_row_delete_1")).first);
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
// Verify that the popup is shown by checking for the PictureWidget
|
||||
expect(find.byType(QuestionaireDeleteDialog), findsOneWidget);
|
||||
|
||||
// Click the yes button to confirm delete
|
||||
await tester.tap(find.byKey(Key("questionnaire_delete_no")));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
// Verify that the delete method was called on the picture controller
|
||||
verifyNever(questionnaireController.delete(argThat(isA<QuestionnaireDto>())));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
QuestionnaireCustomerDto _dto = QuestionnaireCustomerDto(
|
||||
id: 1,
|
||||
customerNumber: "CODE1",
|
||||
name: "Customer 1",
|
||||
questionnaires: [QuestionnaireDto(id: 1, comment: "Some comment", category: "category", questionnaireDate: DateTime.now(), username: "username", evaluation: 1)]);
|
||||
|
||||
List<QuestionnaireCustomerListDto> _list = [
|
||||
QuestionnaireCustomerListDto(id: 1, customerNumber: "CODE1", name: "Customer 1"),
|
||||
QuestionnaireCustomerListDto(id: 2, customerNumber: "CODE2", name: "Customer 2")
|
||||
];
|
||||
Reference in New Issue
Block a user