172 lines
5.2 KiB
Dart
172 lines
5.2 KiB
Dart
part of 'app_test.dart';
|
|
|
|
class LocalsTest {
|
|
static Future setLocal() async {
|
|
_setUpLogged();
|
|
testWidgets('Selecionar um local disponível', //
|
|
(WidgetTester tester) async {
|
|
await tester.pumpWidget(const App());
|
|
await tester.pumpAndSettle();
|
|
|
|
final Finder profileFinder =
|
|
find.byKey(const Key('AsyncLocalProfileComponentWidget_InkWell'));
|
|
expect(profileFinder, findsOneWidget);
|
|
|
|
await tester.tap(profileFinder);
|
|
await tester.pump(const Duration(seconds: 1));
|
|
|
|
final Finder bottomSheetFinder =
|
|
find.byType(BottomArrowLinkedLocalsComponentWidget);
|
|
expect(bottomSheetFinder, findsOneWidget);
|
|
|
|
await tester.ensureVisible(bottomSheetFinder);
|
|
await tester.pump(const Duration(seconds: 1));
|
|
|
|
final Finder listViewFinder = find.descendant(
|
|
of: bottomSheetFinder,
|
|
matching: find.byType(ListView),
|
|
);
|
|
expect(listViewFinder, findsOneWidget);
|
|
|
|
await tester.ensureVisible(listViewFinder);
|
|
await tester.pump(const Duration(seconds: 1));
|
|
|
|
final Finder entriesFinder = find.descendant(
|
|
of: listViewFinder,
|
|
matching: find.byType(CardItemTemplateComponentWidget),
|
|
);
|
|
expect(entriesFinder, findsWidgets);
|
|
|
|
if (entriesFinder.evaluate().isNotEmpty) {
|
|
await tester.ensureVisible(entriesFinder.first);
|
|
await tester.tap(entriesFinder.first);
|
|
await tester.pumpAndSettle();
|
|
}
|
|
|
|
await Future.delayed(const Duration(milliseconds: 500));
|
|
return;
|
|
});
|
|
_tearDown();
|
|
}
|
|
|
|
static Future unlinkLocal() async {
|
|
_setUpAllLogged();
|
|
|
|
testWidgets('Desvincular do local selecionado', //
|
|
(WidgetTester tester) async {
|
|
await tester.pumpWidget(const App());
|
|
await tester.pumpAndSettle();
|
|
await tester.pump(const Duration(seconds: 1));
|
|
|
|
final Finder gridView = find.byType(GridView);
|
|
await tester.ensureVisible(gridView);
|
|
final Finder entries = find.descendant(
|
|
of: gridView,
|
|
matching: find.byType(ButtonMenuItem),
|
|
);
|
|
await tester.pumpAndSettle();
|
|
expect(entries, findsWidgets);
|
|
final Finder settings = find.descendant(
|
|
of: gridView,
|
|
matching: find.byIcon(Icons.settings),
|
|
);
|
|
expect(settings, findsOneWidget);
|
|
|
|
await tester.ensureVisible(settings);
|
|
await tester.tap(settings);
|
|
await tester.pumpAndSettle();
|
|
|
|
final Finder unlinkButton = find.byIcon(Symbols.digital_out_of_home);
|
|
expect(unlinkButton, findsOneWidget);
|
|
await tester.ensureVisible(unlinkButton);
|
|
await tester.tap(unlinkButton);
|
|
await tester.pumpAndSettle();
|
|
await tester.tap(find.text('Sim'));
|
|
await tester.pump();
|
|
await tester.pump(const Duration(seconds: 1));
|
|
await tester.pump();
|
|
|
|
final Finder bottomSheetFinder =
|
|
find.byType(BottomArrowLinkedLocalsComponentWidget);
|
|
await tester.pump(const Duration(seconds: 1));
|
|
expect(bottomSheetFinder, findsOneWidget);
|
|
await tester.pump(const Duration(seconds: 1));
|
|
|
|
await tester.ensureVisible(bottomSheetFinder);
|
|
await tester.pump(const Duration(seconds: 1));
|
|
|
|
final Finder listViewFinder = find.descendant(
|
|
of: bottomSheetFinder,
|
|
matching: find.byType(ListView),
|
|
);
|
|
expect(listViewFinder, findsOneWidget);
|
|
|
|
await tester.ensureVisible(listViewFinder);
|
|
await tester.pump(const Duration(seconds: 1));
|
|
|
|
final Finder entriesFinder = find.descendant(
|
|
of: listViewFinder,
|
|
matching: find.byType(CardItemTemplateComponentWidget),
|
|
);
|
|
expect(entriesFinder, findsWidgets);
|
|
await Future.delayed(const Duration(milliseconds: 500));
|
|
return;
|
|
});
|
|
|
|
testWidgets('Desvincular de um local já desvinculado', //
|
|
(WidgetTester tester) async {
|
|
await tester.pumpWidget(const App());
|
|
try {
|
|
await tester.pumpAndSettle(
|
|
const Duration(seconds: 2),
|
|
EnginePhase.sendSemanticsUpdate,
|
|
const Duration(seconds: 2),
|
|
);
|
|
throw Exception('Local está vinculado');
|
|
} catch (e) {
|
|
await Future.delayed(const Duration(milliseconds: 500));
|
|
return;
|
|
}
|
|
});
|
|
|
|
_tearDownAll();
|
|
}
|
|
|
|
static Future attachLocal() async {
|
|
_setUpAllLogged();
|
|
|
|
testWidgets('Selecionar um local disponível', //
|
|
(WidgetTester tester) async {
|
|
await tester.pumpWidget(const App());
|
|
late Map<String, String> credentials;
|
|
|
|
var name = ff.randomString(7, 7, true, true, true);
|
|
var email = '$name@example.com';
|
|
var password = '12345678';
|
|
credentials = {
|
|
'nameTextFormField': name,
|
|
'emailTextFormField': email,
|
|
'passwordTextFormField': password
|
|
};
|
|
|
|
await tester.pumpWidget(const App());
|
|
await _navigateToSignUp(tester);
|
|
await _auth(credentials, tester);
|
|
credentials = {
|
|
'emailTextFormField': email,
|
|
'passwordTextFormField': password
|
|
};
|
|
await _auth(credentials, tester);
|
|
|
|
await tester.pumpAndSettle();
|
|
await StorageHelper() //
|
|
.set(ProfileStorageKey.clientUUID.key, '7');
|
|
await tester.pumpAndSettle();
|
|
await Future.delayed(const Duration(milliseconds: 500));
|
|
return;
|
|
});
|
|
|
|
_tearDownAll();
|
|
}
|
|
}
|