This commit is contained in:
J. A. Messias 2025-01-14 10:43:29 -03:00
parent e209c95591
commit 8700b54b0e
1 changed files with 38 additions and 30 deletions

View File

@ -149,6 +149,7 @@ class MenuTest {
'Navegação entre items do Menu',
(PatrolTester tester) async {
$ = tester;
await _logged();
await $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView));
@ -167,49 +168,56 @@ class MenuTest {
await $.waitUntilVisible($(MenuStaggeredView));
///
final Finder gridView = find.byType(GridView);
await $.waitUntilVisible(gridView);
final Finder gridEntries = find.descendant(
of: gridView,
matching: find.byType(ButtonMenuItem),
);
await $.pumpAndSettle();
expect(gridEntries, findsWidgets);
final List<String?> menuKeys = gridEntries
.evaluate()
.map((element) {
final key = element.widget.key;
if (key is ValueKey<String>) {
return key.value;
}
return null;
})
.where((key) => key != null)
.toList();
final List<MenuEntry> entries = MenuEntry.entries;
final List<String> entriesKey = entries
.where((entry) => entry.types.contains(MenuEntryType.Home))
.map((entry) => entry.key)
.toList();
final int gridEntriesCount = gridEntries.evaluate().length;
await $.pumpAndSettle();
expect(entriesKey, containsAll(menuKeys));
// final List<String?> menuKeys = gridEntries
// .evaluate()
// .map((element) {
// final key = element.widget.key;
// if (key is ValueKey<String>) {
// return key.value;
// }
// return null;
// })
// .where((key) => key != null)
// .toList();
// final List<MenuEntry> entries = MenuEntry.entries;
// final List<String> 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++) {
final ButtonMenuItem entry = tester.widget
await $(gridEntries.at(i)).waitUntilVisible().tap();
final ButtonMenuItem entry =
$.tester.widget<ButtonMenuItem>(gridEntries.at(i));
final Key? widgetKey = entry.key;
expect(widgetKey, isNotNull);
try {
await $(#BackNavigationAppBar).waitUntilVisible().tap();
// await $(Icons.keyboard_arrow_down).waitUntilVisible().tap();
} catch (e) {
await _navigateBackUsingSystemGesture();
}
print('WIDGETKEY = $widgetKey');
if (widgetKey == ValueKey<String>('FRE-HUB-FASTPASS')) continue;
if (widgetKey == ValueKey<String>('FRE-HUB-QRCODE')) continue;
if (widgetKey == ValueKey<String>('FRE-HUB-RESERVATIONS')) continue;
await $.waitUntilVisible(gridEntries.at(i));
await $(gridEntries.at(i)).waitUntilVisible().tap();
await $(Icons.keyboard_arrow_down);
Future.delayed(const Duration(milliseconds: 500));
// await _navigateBackUsingSystemGesture();
await $(#BackNavigationAppBar).waitUntilVisible().tap();
// await $(Icons.keyboard_arrow_down).waitUntilVisible().tap();
}
},
);