From e209c95591bab3aa27b504d37be3db0074df47ae Mon Sep 17 00:00:00 2001 From: "J. A. Messias" Date: Tue, 14 Jan 2025 10:01:28 -0300 Subject: [PATCH] WIP --- integration_test/menu_test.dart | 42 +++++++++++++++---- .../shared_components_atoms/appbar.dart | 3 ++ .../pages/provisional_history_page.dart | 6 +-- .../pages/about_property_screen.dart | 3 +- .../delivery_schedule_widget.dart | 1 + .../liberation_history_widget.dart | 2 +- .../message_history_page_widget.dart | 1 + .../package_order_page.dart | 3 +- .../people_on_the_property_page_widget.dart | 1 + .../pets_history_screen.dart | 4 +- lib/pages/pets_page/pets_page_widget.dart | 2 + .../preferences_settings_widget.dart | 4 +- .../provisional_schedule_widget.dart | 1 + .../qr_code_page/qr_code_page_widget.dart | 1 + .../register_visitor_page_widget.dart | 1 + .../residents_on_the_property_screen.dart | 1 + .../schedule_complete_visit_page_widget.dart | 1 + .../vehicles_on_the_property.dart | 1 + .../visits_on_the_property_screen.dart | 1 + 19 files changed, 58 insertions(+), 21 deletions(-) diff --git a/integration_test/menu_test.dart b/integration_test/menu_test.dart index 6d7770b4..cb534edc 100644 --- a/integration_test/menu_test.dart +++ b/integration_test/menu_test.dart @@ -163,10 +163,12 @@ class MenuTest { final PatrolFinder local = $('FRE ACCESS DEMO'); await $(local) .waitUntilVisible() - .tap(settlePolicy: SettlePolicy.trySettle); + .tap(settlePolicy: SettlePolicy.noSettle); await $.waitUntilVisible($(MenuStaggeredView)); + /// + final Finder gridView = find.byType(GridView); final Finder gridEntries = find.descendant( of: gridView, @@ -175,15 +177,39 @@ class MenuTest { await $.pumpAndSettle(); expect(gridEntries, findsWidgets); + final List menuKeys = gridEntries + .evaluate() + .map((element) { + final key = element.widget.key; + if (key is ValueKey) { + return key.value; + } + return null; + }) + .where((key) => key != null) + .toList(); + final List entries = MenuEntry.entries; + final List entriesKey = entries + .where((entry) => entry.types.contains(MenuEntryType.Home)) + .map((entry) => entry.key) + .toList(); + await $.pumpAndSettle(); + expect(entriesKey, containsAll(menuKeys)); + + /// + final int gridEntriesCount = gridEntries.evaluate().length; + for (int i = 0; i < gridEntriesCount; i++) { - await tester.tap(gridEntries.at(i)); - await tester.pumpAndSettle(); - await Future.delayed(const Duration(seconds: 1)); - await tester.tap(find.byIcon(Icons.keyboard_arrow_left)); - await tester.pumpAndSettle(); - await Future.delayed(const Duration(milliseconds: 500)); - return; + final ButtonMenuItem entry = tester.widget + await $(gridEntries.at(i)).waitUntilVisible().tap(); + + try { + await $(#BackNavigationAppBar).waitUntilVisible().tap(); + // await $(Icons.keyboard_arrow_down).waitUntilVisible().tap(); + } catch (e) { + await _navigateBackUsingSystemGesture(); + } } }, ); diff --git a/lib/components/atomic_components/shared_components_atoms/appbar.dart b/lib/components/atomic_components/shared_components_atoms/appbar.dart index 9bdfdab4..8eac9927 100644 --- a/lib/components/atomic_components/shared_components_atoms/appbar.dart +++ b/lib/components/atomic_components/shared_components_atoms/appbar.dart @@ -7,9 +7,11 @@ class AppBarUtil extends StatelessWidget implements PreferredSizeWidget { final String title; final VoidCallback? onBackButtonPressed; final Widget? actionButton; + final Key appBarKey; const AppBarUtil({ super.key, + required this.appBarKey, required this.title, this.onBackButtonPressed, this.actionButton, @@ -18,6 +20,7 @@ class AppBarUtil extends StatelessWidget implements PreferredSizeWidget { @override Widget build(BuildContext context) { return AppBar( + key: appBarKey, backgroundColor: FlutterFlowTheme.of(context).primaryBackground, automaticallyImplyLeading: false, forceMaterialTransparency: true, diff --git a/lib/features/history/presentation/pages/provisional_history_page.dart b/lib/features/history/presentation/pages/provisional_history_page.dart index 758e65b5..3984d58d 100644 --- a/lib/features/history/presentation/pages/provisional_history_page.dart +++ b/lib/features/history/presentation/pages/provisional_history_page.dart @@ -1,5 +1,4 @@ import 'dart:async'; -import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; @@ -11,18 +10,18 @@ import 'package:hub/flutter_flow/flutter_flow_icon_button.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/shared/utils/dialog_util.dart'; -import 'package:hub/shared/utils/limited_text_size.dart'; import 'package:hub/shared/utils/log_util.dart'; import 'package:hub/shared/utils/snackbar_util.dart'; - import 'package:rxdart/rxdart.dart'; @immutable // ignore: must_be_immutable class ProvisionalHistoryPage extends StatefulWidget { Map opt; + ProvisionalHistoryPage({super.key, Map? opt}) : opt = opt ?? const {'AGP_STATUS': '.*'}; + @override State createState() => ProvisionalHistoryState(opt); } @@ -92,6 +91,7 @@ class ProvisionalHistoryState extends State { Widget _backButton(BuildContext context, FlutterFlowTheme theme) { return FlutterFlowIconButton( + key: ValueKey('BackNavigationAppBar'), borderColor: Colors.transparent, borderRadius: 30.0, borderWidth: 1.0, diff --git a/lib/features/property/presentation/pages/about_property_screen.dart b/lib/features/property/presentation/pages/about_property_screen.dart index 9753b962..9b1a2c9d 100644 --- a/lib/features/property/presentation/pages/about_property_screen.dart +++ b/lib/features/property/presentation/pages/about_property_screen.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:hub/components/atomic_components/shared_components_atoms/appbar.dart'; import 'package:hub/features/menu/index.dart'; -import 'package:hub/flutter_flow/flutter_flow_model.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; @@ -71,6 +70,8 @@ class _AboutPropertyPageState extends State final String title = FFLocalizations.of(context).getVariableText( ptText: "Sobre a Propriedade", enText: "About the Property"); return AppBarUtil( + key: UniqueKey(), + appBarKey: ValueKey('BackNavigationAppBar'), title: title, onBackButtonPressed: () => context.pop(), ); diff --git a/lib/pages/delivery_schedule_page/delivery_schedule_widget.dart b/lib/pages/delivery_schedule_page/delivery_schedule_widget.dart index 1cb9787f..1d8e5749 100644 --- a/lib/pages/delivery_schedule_page/delivery_schedule_widget.dart +++ b/lib/pages/delivery_schedule_page/delivery_schedule_widget.dart @@ -36,6 +36,7 @@ class _DeliveryScheduleState extends State { automaticallyImplyLeading: false, forceMaterialTransparency: true, leading: FlutterFlowIconButton( + key: ValueKey('BackNavigationAppBar'), borderColor: Colors.transparent, borderRadius: 30.0, borderWidth: 1.0, diff --git a/lib/pages/liberation_history/liberation_history_widget.dart b/lib/pages/liberation_history/liberation_history_widget.dart index 2560e511..9073368f 100644 --- a/lib/pages/liberation_history/liberation_history_widget.dart +++ b/lib/pages/liberation_history/liberation_history_widget.dart @@ -13,7 +13,6 @@ import 'package:hub/shared/utils/dialog_util.dart'; import 'package:hub/shared/utils/limited_text_size.dart'; import 'package:hub/shared/utils/log_util.dart'; import 'package:hub/shared/utils/snackbar_util.dart'; - import 'package:hub/shared/utils/validator_util.dart'; class LiberationHistoryWidget extends StatefulWidget { @@ -104,6 +103,7 @@ class _LiberationHistoryWidgetState extends State { automaticallyImplyLeading: false, forceMaterialTransparency: true, leading: FlutterFlowIconButton( + key: ValueKey('BackNavigationAppBar'), borderColor: Colors.transparent, borderRadius: 30.0, borderWidth: 1.0, diff --git a/lib/pages/message_history_page/message_history_page_widget.dart b/lib/pages/message_history_page/message_history_page_widget.dart index 645a445d..3e72708b 100644 --- a/lib/pages/message_history_page/message_history_page_widget.dart +++ b/lib/pages/message_history_page/message_history_page_widget.dart @@ -146,6 +146,7 @@ class _MessageHistoryPageWidgetState extends State backgroundColor: FlutterFlowTheme.of(context).primaryBackground, automaticallyImplyLeading: false, leading: FlutterFlowIconButton( + key: ValueKey('BackNavigationAppBar'), borderColor: Colors.transparent, borderRadius: 30.0, borderWidth: 1.0, diff --git a/lib/pages/package_order_page/package_order_page.dart b/lib/pages/package_order_page/package_order_page.dart index a0b76920..a8d04b60 100644 --- a/lib/pages/package_order_page/package_order_page.dart +++ b/lib/pages/package_order_page/package_order_page.dart @@ -10,11 +10,9 @@ import 'package:hub/features/storage/index.dart'; import 'package:hub/flutter_flow/flutter_flow_icon_button.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; - import 'package:hub/shared/utils/dialog_util.dart'; import 'package:hub/shared/utils/limited_text_size.dart'; import 'package:hub/shared/utils/log_util.dart'; - import 'package:hub/shared/utils/validator_util.dart'; import 'package:rxdart/rxdart.dart'; @@ -145,6 +143,7 @@ class _PackageOrderPage extends State { Widget _backButton(BuildContext context, FlutterFlowTheme theme) { return FlutterFlowIconButton( + key: ValueKey('BackNavigationAppBar'), borderColor: Colors.transparent, borderRadius: 30.0, borderWidth: 1.0, diff --git a/lib/pages/people_on_the_property_page/people_on_the_property_page_widget.dart b/lib/pages/people_on_the_property_page/people_on_the_property_page_widget.dart index af732129..097f9090 100644 --- a/lib/pages/people_on_the_property_page/people_on_the_property_page_widget.dart +++ b/lib/pages/people_on_the_property_page/people_on_the_property_page_widget.dart @@ -47,6 +47,7 @@ class _PeopleOnThePropertyPageState extends State { automaticallyImplyLeading: false, forceMaterialTransparency: true, leading: FlutterFlowIconButton( + key: ValueKey('BackNavigationAppBar'), borderColor: Colors.transparent, borderRadius: 30.0, borderWidth: 1.0, diff --git a/lib/pages/pets_on_the_property_page/pets_history_screen.dart b/lib/pages/pets_on_the_property_page/pets_history_screen.dart index 4881c182..813c1158 100644 --- a/lib/pages/pets_on_the_property_page/pets_history_screen.dart +++ b/lib/pages/pets_on_the_property_page/pets_history_screen.dart @@ -1,15 +1,12 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; - import 'package:hub/components/templates_components/card_item_template_component/card_item_template_component_widget.dart'; import 'package:hub/features/backend/index.dart'; import 'package:hub/features/storage/index.dart'; import 'package:hub/flutter_flow/flutter_flow_icon_button.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; - import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/pages/pets_page/pets_page_model.dart'; - import 'package:hub/shared/utils/dialog_util.dart'; import 'package:hub/shared/utils/limited_text_size.dart'; import 'package:hub/shared/utils/log_util.dart'; @@ -85,6 +82,7 @@ class _PetsHistoryScreenState extends State Widget _backButton(BuildContext context, FlutterFlowTheme theme) { return FlutterFlowIconButton( + key: ValueKey('BackNavigationAppBar'), borderColor: Colors.transparent, borderRadius: 30.0, borderWidth: 1.0, diff --git a/lib/pages/pets_page/pets_page_widget.dart b/lib/pages/pets_page/pets_page_widget.dart index b1214838..8816c468 100644 --- a/lib/pages/pets_page/pets_page_widget.dart +++ b/lib/pages/pets_page/pets_page_widget.dart @@ -76,6 +76,8 @@ class _PetsPageWidgetState extends State PreferredSizeWidget _buildAppBar(BuildContext context) { return AppBarUtil( + key: UniqueKey(), + appBarKey: ValueKey('BackNavigationAppBar'), title: FFLocalizations.of(context).getVariableText( ptText: 'Cadastrar Pets', enText: 'Pets Register', diff --git a/lib/pages/preferences_settings_page/preferences_settings_widget.dart b/lib/pages/preferences_settings_page/preferences_settings_widget.dart index 9b2b9418..4c58efa2 100644 --- a/lib/pages/preferences_settings_page/preferences_settings_widget.dart +++ b/lib/pages/preferences_settings_page/preferences_settings_widget.dart @@ -1,15 +1,12 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; -import 'package:hub/features/local/data/index.dart'; import 'package:hub/flutter_flow/flutter_flow_icon_button.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/pages/preferences_settings_page/preferences_settings_model.dart'; import 'package:hub/shared/utils/limited_text_size.dart'; - import 'package:material_symbols_icons/symbols.dart'; - import 'package:provider/provider.dart'; class PreferencesPageWidget extends StatefulWidget { @@ -41,6 +38,7 @@ class _PreferencesPageWidgetState extends State { automaticallyImplyLeading: false, forceMaterialTransparency: true, leading: FlutterFlowIconButton( + key: ValueKey('BackNavigationAppBar'), borderColor: Colors.transparent, borderRadius: 30.0, borderWidth: 1.0, diff --git a/lib/pages/provisional_schedule_page/provisional_schedule_widget.dart b/lib/pages/provisional_schedule_page/provisional_schedule_widget.dart index 3d5c32d4..2bc902d0 100644 --- a/lib/pages/provisional_schedule_page/provisional_schedule_widget.dart +++ b/lib/pages/provisional_schedule_page/provisional_schedule_widget.dart @@ -36,6 +36,7 @@ class _ProvisionalScheduleState extends State { automaticallyImplyLeading: false, forceMaterialTransparency: true, leading: FlutterFlowIconButton( + key: ValueKey('BackNavigationAppBar'), borderColor: Colors.transparent, borderRadius: 30.0, borderWidth: 1.0, diff --git a/lib/pages/qr_code_page/qr_code_page_widget.dart b/lib/pages/qr_code_page/qr_code_page_widget.dart index ceee8de1..f7832214 100644 --- a/lib/pages/qr_code_page/qr_code_page_widget.dart +++ b/lib/pages/qr_code_page/qr_code_page_widget.dart @@ -472,6 +472,7 @@ class _QrCodePageWidgetState extends State AppBar buildAppBar(BuildContext context) { return AppBar( + key: ValueKey('BackNavigationAppBar'), backgroundColor: FlutterFlowTheme.of(context).primaryBackground, automaticallyImplyLeading: false, leading: FlutterFlowIconButton( diff --git a/lib/pages/register_visitor_page/register_visitor_page_widget.dart b/lib/pages/register_visitor_page/register_visitor_page_widget.dart index 682c7047..0bb17c92 100644 --- a/lib/pages/register_visitor_page/register_visitor_page_widget.dart +++ b/lib/pages/register_visitor_page/register_visitor_page_widget.dart @@ -43,6 +43,7 @@ class _RegisterVisitorPageWidgetState extends State { backgroundColor: FlutterFlowTheme.of(context).primaryBackground, automaticallyImplyLeading: false, leading: FlutterFlowIconButton( + key: ValueKey('BackNavigationAppBar'), borderColor: Colors.transparent, borderRadius: 30.0, borderWidth: 1.0, diff --git a/lib/pages/residents_on_the_property/residents_on_the_property_screen.dart b/lib/pages/residents_on_the_property/residents_on_the_property_screen.dart index 664d713a..8f63d8a2 100644 --- a/lib/pages/residents_on_the_property/residents_on_the_property_screen.dart +++ b/lib/pages/residents_on_the_property/residents_on_the_property_screen.dart @@ -157,6 +157,7 @@ class _ResidentsOnThePropertyState extends State Widget _backButton(BuildContext context, FlutterFlowTheme theme) { return FlutterFlowIconButton( + key: ValueKey('BackNavigationAppBar'), borderColor: Colors.transparent, borderRadius: 30.0, borderWidth: 1.0, diff --git a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart index d5b8aea4..f5247241 100644 --- a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart +++ b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart @@ -126,6 +126,7 @@ class _ScheduleCompleteVisitPageWidgetState forceMaterialTransparency: true, elevation: 0.0, leading: FlutterFlowIconButton( + key: ValueKey('BackNavigationAppBar'), borderColor: Colors.transparent, borderRadius: 30.0, borderWidth: 1.0, diff --git a/lib/pages/vehicles_on_the_property/vehicles_on_the_property.dart b/lib/pages/vehicles_on_the_property/vehicles_on_the_property.dart index 9eda1f48..c27a067e 100644 --- a/lib/pages/vehicles_on_the_property/vehicles_on_the_property.dart +++ b/lib/pages/vehicles_on_the_property/vehicles_on_the_property.dart @@ -152,6 +152,7 @@ class _VehicleOnThePropertyState extends State Widget _backButton(BuildContext context, FlutterFlowTheme theme) { return FlutterFlowIconButton( + key: ValueKey('BackNavigationAppBar'), borderColor: Colors.transparent, borderRadius: 30.0, borderWidth: 1.0, diff --git a/lib/pages/visits_on_the_property/visits_on_the_property_screen.dart b/lib/pages/visits_on_the_property/visits_on_the_property_screen.dart index fe9d6e5f..1662c4e3 100644 --- a/lib/pages/visits_on_the_property/visits_on_the_property_screen.dart +++ b/lib/pages/visits_on_the_property/visits_on_the_property_screen.dart @@ -157,6 +157,7 @@ class _VisitsOnThePropertyState extends State Widget _backButton(BuildContext context, FlutterFlowTheme theme) { return FlutterFlowIconButton( + key: ValueKey('BackNavigationAppBar'), borderColor: Colors.transparent, borderRadius: 30.0, borderWidth: 1.0,