test
This commit is contained in:
parent
f64d65425f
commit
56cb5427a2
|
@ -7,6 +7,7 @@ import 'package:firebase_crashlytics/firebase_crashlytics.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:hub/components/atomic_components/shared_components_atoms/submit_button.dart';
|
||||||
import 'package:hub/components/molecular_components/throw_exception/throw_exception_widget.dart';
|
import 'package:hub/components/molecular_components/throw_exception/throw_exception_widget.dart';
|
||||||
import 'package:hub/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart';
|
import 'package:hub/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart';
|
||||||
import 'package:hub/components/templates_components/card_item_template_component/card_item_template_component_widget.dart';
|
import 'package:hub/components/templates_components/card_item_template_component/card_item_template_component_widget.dart';
|
||||||
|
@ -71,26 +72,26 @@ void main() {
|
||||||
// setUp(() async {});
|
// setUp(() async {});
|
||||||
// tearDown(() async {});
|
// tearDown(() async {});
|
||||||
|
|
||||||
WelcomeTest.signInToSignUp();
|
// WelcomeTest.signInToSignUp();
|
||||||
WelcomeTest.signUpToSignIn();
|
// WelcomeTest.signUpToSignIn();
|
||||||
|
|
||||||
// AuthenticationTest.signIn();
|
// AuthenticationTest.signIn();
|
||||||
// AuthenticationTest.signUp();
|
// AuthenticationTest.signUp();
|
||||||
// AuthenticationTest.signOut();
|
// AuthenticationTest.signOut();
|
||||||
// AuthenticationTest.recovery();
|
// AuthenticationTest.recovery();
|
||||||
|
|
||||||
ModularizationTest.switchLicense();
|
// ModularizationTest.switchLicense();
|
||||||
ModularizationTest.containLicense();
|
// ModularizationTest.containLicense();
|
||||||
|
|
||||||
MenuTest.navToEntries();
|
// MenuTest.navToEntries();
|
||||||
MenuTest.containEntries();
|
// MenuTest.containEntries();
|
||||||
MenuTest.labels2AppbarConsistency();
|
// MenuTest.labels2AppbarConsistency();
|
||||||
|
|
||||||
// LocalsTest.setLocal();
|
// LocalsTest.setLocal();
|
||||||
// LocalsTest.unlinkLocal();
|
// LocalsTest.unlinkLocal();
|
||||||
|
|
||||||
VehicleTest.vehiclePage();
|
// VehicleTest.vehiclePage();
|
||||||
// VehicleTest.historyScreen();
|
// VehicleTest.historyScreen();
|
||||||
// VehicleTest.registerScreen();
|
VehicleTest.registerScreen();
|
||||||
// VehicleTest.updateScreen();
|
// VehicleTest.updateScreen();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,25 @@
|
||||||
part of 'app_test.dart';
|
part of 'app_test.dart';
|
||||||
|
|
||||||
class VehicleTest {
|
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 {
|
static Future<void> vehiclePage() async {
|
||||||
patrolWidgetTest(
|
patrolWidgetTest(
|
||||||
'Vehicle Page',
|
'Vehicle Page',
|
||||||
|
@ -10,6 +29,8 @@ class VehicleTest {
|
||||||
final PatrolFinder throwsException = $(Dialog).$(ThrowExceptionWidget);
|
final PatrolFinder throwsException = $(Dialog).$(ThrowExceptionWidget);
|
||||||
|
|
||||||
await _loggedWithMultiLocalsAccount();
|
await _loggedWithMultiLocalsAccount();
|
||||||
|
await _initVehicleModule();
|
||||||
|
await $.pumpAndSettle();
|
||||||
await $.pumpWidgetAndSettle(const App());
|
await $.pumpWidgetAndSettle(const App());
|
||||||
|
|
||||||
ff.navigatorKey.currentContext!.go('/vehiclesOnThePropertyPage');
|
ff.navigatorKey.currentContext!.go('/vehiclesOnThePropertyPage');
|
||||||
|
@ -49,25 +70,26 @@ class VehicleTest {
|
||||||
final int entriesCount = entriesFinder.evaluate().length;
|
final int entriesCount = entriesFinder.evaluate().length;
|
||||||
await $.pumpAndSettle();
|
await $.pumpAndSettle();
|
||||||
|
|
||||||
for (int i = 0; i < entriesCount; i++) {
|
if (entriesCount > 0)
|
||||||
await $(entriesFinder.at(i)).scrollTo();
|
for (int i = 0; i < entriesCount; i++) {
|
||||||
|
await $(entriesFinder.at(i)).scrollTo();
|
||||||
|
|
||||||
await $(entriesFinder.at(i))
|
await $(entriesFinder.at(i))
|
||||||
.waitUntilVisible(timeout: const Duration(seconds: 1))
|
.waitUntilVisible(timeout: const Duration(seconds: 1))
|
||||||
.tap(
|
.tap(
|
||||||
settleTimeout: const Duration(seconds: 1),
|
settleTimeout: const Duration(seconds: 1),
|
||||||
settlePolicy: SettlePolicy.noSettle,
|
settlePolicy: SettlePolicy.noSettle,
|
||||||
);
|
);
|
||||||
|
|
||||||
await $.pumpAndSettle(duration: Duration(milliseconds: 500));
|
await $.pumpAndSettle(duration: Duration(milliseconds: 500));
|
||||||
final PatrolFinder detailsFinder =
|
final PatrolFinder detailsFinder =
|
||||||
await $(DetailsComponentWidget).waitUntilVisible();
|
await $(DetailsComponentWidget).waitUntilVisible();
|
||||||
expect(detailsFinder, findsOneWidget);
|
expect(detailsFinder, findsOneWidget);
|
||||||
|
|
||||||
await _navigateBackUsingSystemGesture();
|
await _navigateBackUsingSystemGesture();
|
||||||
|
|
||||||
// await $.native.pressBack().then((_) => $.pumpAndSettle());
|
// await $.native.pressBack().then((_) => $.pumpAndSettle());
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
patrolWidgetTest(
|
patrolWidgetTest(
|
||||||
|
@ -77,29 +99,9 @@ class VehicleTest {
|
||||||
$.tester.printToConsole('Vehicle Page');
|
$.tester.printToConsole('Vehicle Page');
|
||||||
|
|
||||||
await _loggedWithMultiLocalsAccount();
|
await _loggedWithMultiLocalsAccount();
|
||||||
|
await _initVehicleModule();
|
||||||
|
await $.pumpAndSettle();
|
||||||
|
|
||||||
// await StorageHelper().set(
|
|
||||||
// LicenseKeys.vehiclesManager.value,
|
|
||||||
// <String, dynamic>{
|
|
||||||
// 'display': 'VISIVEL',
|
|
||||||
// 'expirationDate': '',
|
|
||||||
// 'startDate': '',
|
|
||||||
// 'quantity': 0,
|
|
||||||
// },
|
|
||||||
// );
|
|
||||||
// // await $.pumpAndSettle();
|
|
||||||
// ff.navigatorKey.currentContext!.go('/vehiclesOnThePropertyPage');
|
|
||||||
// await Future.delayed(const Duration(milliseconds: 1000));
|
|
||||||
|
|
||||||
await StorageHelper().set(
|
|
||||||
LicenseKeys.vehiclesManager.value,
|
|
||||||
<String, dynamic>{
|
|
||||||
'display': 'VISIVEL',
|
|
||||||
'expirationDate': '',
|
|
||||||
'startDate': '',
|
|
||||||
'quantity': 0,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
await $.pumpWidgetAndSettle(const App());
|
await $.pumpWidgetAndSettle(const App());
|
||||||
|
|
||||||
ff.navigatorKey.currentContext!.go('/vehiclesOnThePropertyPage');
|
ff.navigatorKey.currentContext!.go('/vehiclesOnThePropertyPage');
|
||||||
|
@ -150,6 +152,8 @@ class VehicleTest {
|
||||||
final PatrolFinder throwsException = $(Dialog).$(ThrowExceptionWidget);
|
final PatrolFinder throwsException = $(Dialog).$(ThrowExceptionWidget);
|
||||||
|
|
||||||
await _loggedWithMultiLocalsAccount();
|
await _loggedWithMultiLocalsAccount();
|
||||||
|
await _initVehicleModule();
|
||||||
|
await $.pumpAndSettle();
|
||||||
await $.pumpWidgetAndSettle(const App());
|
await $.pumpWidgetAndSettle(const App());
|
||||||
|
|
||||||
ff.navigatorKey.currentContext!.go('/vehiclesOnThePropertyPage');
|
ff.navigatorKey.currentContext!.go('/vehiclesOnThePropertyPage');
|
||||||
|
@ -166,11 +170,116 @@ class VehicleTest {
|
||||||
.waitUntilVisible();
|
.waitUntilVisible();
|
||||||
expect(titleAppBar, findsOneWidget);
|
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) //
|
final PatrolFinder tab2 = await $(#TabView_Tab2) //
|
||||||
.waitUntilExists();
|
.waitUntilExists();
|
||||||
|
|
||||||
await tab2.tap();
|
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) //
|
final PatrolFinder listViewFinder = await $(VehicleHistoryScreen) //
|
||||||
.$(ListView)
|
.$(ListView)
|
||||||
.waitUntilVisible();
|
.waitUntilVisible();
|
||||||
|
@ -182,32 +291,30 @@ class VehicleTest {
|
||||||
.waitUntilVisible();
|
.waitUntilVisible();
|
||||||
|
|
||||||
expect(entriesFinder, findsWidgets);
|
expect(entriesFinder, findsWidgets);
|
||||||
final int entriesCount = entriesFinder.evaluate().length;
|
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();
|
await $.pumpAndSettle();
|
||||||
|
final PatrolFinder successDialog = await $(Dialog).waitUntilVisible();
|
||||||
for (int i = 0; i < entriesCount; i++) {
|
expect(successDialog, findsOneWidget);
|
||||||
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 {}
|
|
||||||
static Future<void> updateScreen() async {}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -206,7 +206,7 @@ class RegisterVehicle {
|
||||||
|
|
||||||
class UpdateVehicle {
|
class UpdateVehicle {
|
||||||
Future<ApiCallResponse> call({
|
Future<ApiCallResponse> call({
|
||||||
final String? vehicleId,
|
required final int vehicleId,
|
||||||
final String? licensePlate,
|
final String? licensePlate,
|
||||||
final String? color,
|
final String? color,
|
||||||
final String? model,
|
final String? model,
|
||||||
|
|
|
@ -82,10 +82,9 @@ class VehicleModel extends FlutterFlowModel<VehiclePage>
|
||||||
/// [_BaseVehiclePage] is a mixin that contains the base logic of the vehicle page.
|
/// [_BaseVehiclePage] is a mixin that contains the base logic of the vehicle page.
|
||||||
mixin class _BaseVehiclePage {
|
mixin class _BaseVehiclePage {
|
||||||
int count = 0;
|
int count = 0;
|
||||||
late final VehicleModel model;
|
|
||||||
late final TabController tabBarController;
|
late final TabController tabBarController;
|
||||||
// dynamic item;
|
// dynamic item;
|
||||||
String? vehicleId;
|
late int vehicleId;
|
||||||
BuildContext context = navigatorKey.currentContext!;
|
BuildContext context = navigatorKey.currentContext!;
|
||||||
bool isEditing = false;
|
bool isEditing = false;
|
||||||
ApiCallResponse? vehicleResponse;
|
ApiCallResponse? vehicleResponse;
|
||||||
|
@ -161,6 +160,7 @@ mixin class _BaseVehiclePage {
|
||||||
|
|
||||||
Future<void> setEditForm(dynamic item) async {
|
Future<void> setEditForm(dynamic item) async {
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
|
log('vehicleId: ${item['vehicleId']}');
|
||||||
vehicleId = item['vehicleId'];
|
vehicleId = item['vehicleId'];
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue