321 lines
10 KiB
Dart
321 lines
10 KiB
Dart
part of 'app_test.dart';
|
|
|
|
class VehicleTest {
|
|
static Future<void> _initVehicleModule() async {
|
|
final vehicleParam = <String, dynamic>{
|
|
'display': 'VISIVEL',
|
|
'expirationDate': '',
|
|
'startDate': '',
|
|
'quantity': 0,
|
|
};
|
|
final vehicleManagerParam = <String, dynamic>{
|
|
'display': 'VISIVEL',
|
|
'expirationDate': '',
|
|
'startDate': '',
|
|
'quantity': 0,
|
|
};
|
|
await LicenseRepositoryImpl()
|
|
.setModule(LicenseKeys.vehicles.value, vehicleParam);
|
|
await LicenseRepositoryImpl()
|
|
.setModule(LicenseKeys.vehiclesManager.value, vehicleManagerParam);
|
|
}
|
|
|
|
static Future<void> vehiclePage() async {
|
|
patrolWidgetTest(
|
|
'Vehicle Page',
|
|
(PatrolTester tester) async {
|
|
$ = tester;
|
|
$.tester.printToConsole('Vehicle Page');
|
|
final PatrolFinder throwsException = $(Dialog).$(ThrowExceptionWidget);
|
|
|
|
await _loggedWithMultiLocalsAccount();
|
|
await _initVehicleModule();
|
|
await $.pumpAndSettle();
|
|
await $.pumpWidgetAndSettle(const App());
|
|
|
|
ff.navigatorKey.currentContext!.go('/vehiclesOnThePropertyPage');
|
|
|
|
final String title = MenuEntry.entries //
|
|
.where((entry) => entry.key == 'FRE-HUB-VEHICLES') //
|
|
.map((entry) => entry.name)
|
|
.first;
|
|
|
|
final PatrolFinder appBar = await $(AppBar) //
|
|
.waitUntilExists();
|
|
final PatrolFinder titleAppBar = await appBar //
|
|
.$(title)
|
|
.waitUntilVisible();
|
|
expect(titleAppBar, findsOneWidget);
|
|
|
|
final PatrolFinder tab1 = await $(#TabView_Tab1) //
|
|
.waitUntilExists();
|
|
final PatrolFinder tab2 = await $(#TabView_Tab2) //
|
|
.waitUntilExists();
|
|
|
|
await tab2.tap();
|
|
await Future.delayed(const Duration(milliseconds: 500));
|
|
await tab1.tap();
|
|
|
|
final PatrolFinder listViewFinder = await $(VehicleHistoryScreen) //
|
|
.$(ListView)
|
|
.waitUntilVisible();
|
|
|
|
expect(listViewFinder, findsOneWidget);
|
|
|
|
final PatrolFinder entriesFinder = await $(listViewFinder)
|
|
.$(CardItemTemplateComponentWidget)
|
|
.waitUntilVisible();
|
|
|
|
expect(entriesFinder, findsWidgets);
|
|
final int entriesCount = entriesFinder.evaluate().length;
|
|
await $.pumpAndSettle();
|
|
|
|
if (entriesCount > 0)
|
|
for (int i = 0; i < entriesCount; i++) {
|
|
await $(entriesFinder.at(i)).scrollTo();
|
|
|
|
await $(entriesFinder.at(i))
|
|
.waitUntilVisible(timeout: const Duration(seconds: 1))
|
|
.tap(
|
|
settleTimeout: const Duration(seconds: 1),
|
|
settlePolicy: SettlePolicy.noSettle,
|
|
);
|
|
|
|
await $.pumpAndSettle(duration: Duration(milliseconds: 500));
|
|
final PatrolFinder detailsFinder =
|
|
await $(DetailsComponentWidget).waitUntilVisible();
|
|
expect(detailsFinder, findsOneWidget);
|
|
|
|
await _navigateBackUsingSystemGesture();
|
|
|
|
// await $.native.pressBack().then((_) => $.pumpAndSettle());
|
|
}
|
|
},
|
|
);
|
|
patrolWidgetTest(
|
|
'License',
|
|
(PatrolTester tester) async {
|
|
$ = tester;
|
|
$.tester.printToConsole('Vehicle Page');
|
|
|
|
await _loggedWithMultiLocalsAccount();
|
|
await _initVehicleModule();
|
|
await $.pumpAndSettle();
|
|
|
|
await $.pumpWidgetAndSettle(const App());
|
|
|
|
ff.navigatorKey.currentContext!.go('/vehiclesOnThePropertyPage');
|
|
final String title = MenuEntry.entries //
|
|
.where((entry) => entry.key == 'FRE-HUB-VEHICLES') //
|
|
.map((entry) => entry.name)
|
|
.first;
|
|
|
|
final PatrolFinder appBar = await $(AppBar) //
|
|
.waitUntilExists();
|
|
final PatrolFinder titleAppBar = await appBar //
|
|
.$(title)
|
|
.waitUntilVisible();
|
|
expect(titleAppBar, findsOneWidget);
|
|
|
|
final PatrolFinder tab1 = await $(#TabView_Tab1) //
|
|
.waitUntilExists();
|
|
final PatrolFinder tab2 = await $(#TabView_Tab2) //
|
|
.waitUntilExists();
|
|
|
|
await tab2.tap();
|
|
await Future.delayed(const Duration(milliseconds: 500));
|
|
await tab1.tap();
|
|
|
|
final PatrolFinder listViewFinder = await $(VehicleHistoryScreen) //
|
|
.$(ListView)
|
|
.waitUntilVisible();
|
|
|
|
expect(listViewFinder, findsOneWidget);
|
|
|
|
final PatrolFinder entriesFinder = await $(listViewFinder)
|
|
.$(CardItemTemplateComponentWidget)
|
|
.waitUntilVisible();
|
|
|
|
expect(entriesFinder, findsWidgets);
|
|
await $.pumpAndSettle();
|
|
await Future.delayed(const Duration(milliseconds: 1000));
|
|
},
|
|
);
|
|
}
|
|
|
|
static Future<void> historyScreen() async {
|
|
patrolWidgetTest(
|
|
'historyScreen',
|
|
(PatrolTester tester) async {
|
|
$ = tester;
|
|
$.tester.printToConsole('Vehicle Page');
|
|
final PatrolFinder throwsException = $(Dialog).$(ThrowExceptionWidget);
|
|
|
|
await _loggedWithMultiLocalsAccount();
|
|
await _initVehicleModule();
|
|
await $.pumpAndSettle();
|
|
await $.pumpWidgetAndSettle(const App());
|
|
|
|
ff.navigatorKey.currentContext!.go('/vehiclesOnThePropertyPage');
|
|
|
|
final String title = MenuEntry.entries //
|
|
.where((entry) => entry.key == 'FRE-HUB-VEHICLES') //
|
|
.map((entry) => entry.name)
|
|
.first;
|
|
|
|
final PatrolFinder appBar = await $(AppBar) //
|
|
.waitUntilExists();
|
|
final PatrolFinder titleAppBar = await appBar //
|
|
.$(title)
|
|
.waitUntilVisible();
|
|
expect(titleAppBar, findsOneWidget);
|
|
|
|
final PatrolFinder listViewFinder = await $(VehicleHistoryScreen) //
|
|
.$(ListView)
|
|
.waitUntilVisible();
|
|
|
|
expect(listViewFinder, findsOneWidget);
|
|
|
|
final PatrolFinder entriesFinder = await $(listViewFinder)
|
|
.$(CardItemTemplateComponentWidget)
|
|
.waitUntilVisible();
|
|
|
|
expect(entriesFinder, findsWidgets);
|
|
await $.pumpAndSettle();
|
|
await $(entriesFinder.first)
|
|
.waitUntilVisible(timeout: const Duration(seconds: 1))
|
|
.tap(
|
|
settleTimeout: const Duration(seconds: 1),
|
|
settlePolicy: SettlePolicy.noSettle,
|
|
);
|
|
|
|
await $.pumpAndSettle(duration: Duration(milliseconds: 500));
|
|
final PatrolFinder detailsFinder =
|
|
await $(DetailsComponentWidget).waitUntilVisible();
|
|
expect(detailsFinder, findsOneWidget);
|
|
|
|
await _navigateBackUsingSystemGesture();
|
|
|
|
/// Iterable Test
|
|
// final int entriesCount = entriesFinder.evaluate().length;
|
|
// for (int i = 0; i < entriesCount; i++) {
|
|
// // await $(entriesFinder.at(i)).scrollTo();
|
|
|
|
// await $(entriesFinder.at(i))
|
|
// .waitUntilVisible(timeout: const Duration(seconds: 1))
|
|
// .tap(
|
|
// settleTimeout: const Duration(seconds: 1),
|
|
// settlePolicy: SettlePolicy.noSettle,
|
|
// );
|
|
|
|
// await $.pumpAndSettle(duration: Duration(milliseconds: 500));
|
|
// final PatrolFinder detailsFinder =
|
|
// await $(DetailsComponentWidget).waitUntilVisible();
|
|
// expect(detailsFinder, findsOneWidget);
|
|
|
|
// await _navigateBackUsingSystemGesture();
|
|
|
|
// // await $.native.pressBack().then((_) => $.pumpAndSettle());
|
|
// }
|
|
},
|
|
);
|
|
}
|
|
|
|
static Future<void> registerScreen() async {
|
|
patrolWidgetTest(
|
|
'registerScreen',
|
|
(PatrolTester tester) async {
|
|
$ = tester;
|
|
$.tester.printToConsole('Vehicle Register Page');
|
|
|
|
await _loggedWithMultiLocalsAccount();
|
|
await _initVehicleModule();
|
|
await $.pumpAndSettle();
|
|
await $.pumpWidgetAndSettle(const App());
|
|
|
|
ff.navigatorKey.currentContext!.go('/vehiclesOnThePropertyPage');
|
|
|
|
final PatrolFinder tab2 = await $(#TabView_Tab2) //
|
|
.waitUntilExists();
|
|
|
|
await tab2.tap();
|
|
|
|
final PatrolFinder licensePlateField =
|
|
await $(TextField).at(0).waitUntilVisible();
|
|
final PatrolFinder modelField =
|
|
await $(TextField).at(1).waitUntilVisible();
|
|
final PatrolFinder colorField =
|
|
await $(TextField).at(2).waitUntilVisible();
|
|
final PatrolFinder submitButton =
|
|
await $(SubmitButtonUtil).waitUntilVisible();
|
|
|
|
await licensePlateField.enterText('ABC1234');
|
|
await modelField.enterText('Voyage');
|
|
await colorField.enterText('Black');
|
|
await submitButton.tap();
|
|
|
|
await $.pumpAndSettle();
|
|
final PatrolFinder successDialog = await $(Dialog).waitUntilVisible();
|
|
expect(successDialog, findsOneWidget);
|
|
},
|
|
);
|
|
}
|
|
|
|
static Future<void> updateScreen() async {
|
|
patrolWidgetTest(
|
|
'updateScreen',
|
|
(PatrolTester tester) async {
|
|
$ = tester;
|
|
$.tester.printToConsole('Vehicle Update Page');
|
|
|
|
await _loggedWithMultiLocalsAccount();
|
|
await _initVehicleModule();
|
|
await $.pumpAndSettle();
|
|
await $.pumpWidgetAndSettle(const App());
|
|
|
|
ff.navigatorKey.currentContext!.go('/vehiclesOnThePropertyPage');
|
|
|
|
final PatrolFinder tab1 = await $(#TabView_Tab1) //
|
|
.waitUntilExists();
|
|
|
|
await tab1.tap();
|
|
|
|
final PatrolFinder listViewFinder = await $(VehicleHistoryScreen) //
|
|
.$(ListView)
|
|
.waitUntilVisible();
|
|
|
|
expect(listViewFinder, findsOneWidget);
|
|
|
|
final PatrolFinder entriesFinder = await $(listViewFinder)
|
|
.$(CardItemTemplateComponentWidget)
|
|
.waitUntilVisible();
|
|
|
|
expect(entriesFinder, findsWidgets);
|
|
await $(entriesFinder.at(0)).tap();
|
|
|
|
final PatrolFinder editButton =
|
|
await $(FFButtonWidget).$('Edit').waitUntilVisible();
|
|
await editButton.tap();
|
|
|
|
final PatrolFinder licensePlateField =
|
|
await $(TextField).at(0).waitUntilVisible();
|
|
final PatrolFinder modelField =
|
|
await $(TextField).at(1).waitUntilVisible();
|
|
final PatrolFinder colorField =
|
|
await $(TextField).at(2).waitUntilVisible();
|
|
final PatrolFinder submitButton =
|
|
await $(SubmitButtonUtil).waitUntilVisible();
|
|
|
|
await licensePlateField.enterText('XYZ5678');
|
|
await modelField.enterText('Fiesta');
|
|
await colorField.enterText('Red');
|
|
await submitButton.tap();
|
|
|
|
await $.pumpAndSettle();
|
|
final PatrolFinder successDialog = await $(Dialog).waitUntilVisible();
|
|
expect(successDialog, findsOneWidget);
|
|
},
|
|
);
|
|
}
|
|
}
|