This commit is contained in:
J. A. Messias 2025-01-20 17:52:46 -03:00
parent d7c8d69706
commit d55dddf05e
6 changed files with 370 additions and 53 deletions

View File

@ -48,16 +48,16 @@ void main() {
// WelcomeTest.signInToSignUp();
// WelcomeTest.signUpToSignIn();
// AuthenticationTest.signIn();
AuthenticationTest.signUp();
AuthenticationTest.signIn();
// AuthenticationTest.signUp();
// AuthenticationTest.signOut();
//
// ModularizationTest.switchLicense();
ModularizationTest.switchLicense();
// ModularizationTest.containLicense();
//
// MenuTest.navToEntries();
// MenuTest.containEntries();
// MenuTest.labels2AppbarConsistency();
MenuTest.navToEntries();
MenuTest.containEntries();
MenuTest.labels2AppbarConsistency();
//
// LocalsTest.setLocal();
// LocalsTest.unlinkLocal();

View File

@ -177,7 +177,7 @@ class AuthenticationTest {
$.tester.printToConsole(
'Authentication Test - Sign-Out: Deslogar da Conta');
await _logged();
await _loggedWithMultiLocalsAccount();
await $.pumpWidget(const App());
await $.waitUntilVisible($(MenuStaggeredView));
@ -226,6 +226,7 @@ Future<void> _submit(
await $(ValueKey(key)) //
.waitUntilVisible()
.tap();
await $.pump(Duration(milliseconds: 1000));
if ($(ValueKey('ThrowExceptionWidget')).exists) {
// expect(throwsException, findsOneWidget);
await $(ValueKey('ThrowExceptionWidget')) //

View File

@ -2,13 +2,57 @@ part of 'app_test.dart';
class LocalsTest {
static Future setLocal() async {
// patrolWidgetTest(
// 'Selecionar um local disponível com multiplos locais disponiveis', //
// (PatrolTester tester) async {
// $ = tester;
// $.tester.printToConsole('Locals Test - Selecionar um local disponível');
//
// await _loggedWithMultiLocalsAccount(false);
// await $.pumpWidgetAndSettle(const App());
// await $.waitUntilVisible($(MenuStaggeredView));
// await $.waitUntilVisible($(LocalProfileComponentWidget));
//
// final PatrolFinder profileFinder =
// $(#AsyncLocalProfileComponentWidget_InkWell);
// expect(profileFinder, findsOneWidget);
//
// await $(profileFinder) //
// .waitUntilVisible()
// .tap();
//
// final PatrolFinder bottomSheetFinder =
// await $(BottomArrowLinkedLocalsComponentWidget) //
// .waitUntilVisible();
// expect(bottomSheetFinder, findsOneWidget);
//
// final PatrolFinder listViewFinder = await $(bottomSheetFinder) //
// .$(ListView)
// .waitUntilVisible();
// expect(listViewFinder, findsOneWidget);
//
// await $.pump(const Duration(milliseconds: 500));
//
// final PatrolFinder entriesFinder = await $(listViewFinder) //
// .$(CardItemTemplateComponentWidget)
// .waitUntilVisible();
// expect(entriesFinder, findsWidgets);
//
// if (entriesFinder.evaluate().isNotEmpty) {
// await $(entriesFinder.first) //
// .waitUntilVisible()
// .tap();
// await $.pumpAndSettle();
// }
// },
// );
patrolWidgetTest(
'Selecionar um local disponível', //
'Selecionar um local disponível com somente um local disponivel', //
(PatrolTester tester) async {
$ = tester;
$.tester.printToConsole('Locals Test - Selecionar um local disponível');
await _logged(false);
await _loggedWithSomeoneLocalAccount(false);
await $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView));
await $.waitUntilVisible($(LocalProfileComponentWidget));
@ -20,41 +64,134 @@ class LocalsTest {
await $(profileFinder) //
.waitUntilVisible()
.tap();
final PatrolFinder bottomSheetFinder =
await $(BottomArrowLinkedLocalsComponentWidget) //
.waitUntilVisible();
expect(bottomSheetFinder, findsOneWidget);
final PatrolFinder listViewFinder = await $(bottomSheetFinder) //
.$(ListView)
.waitUntilVisible();
expect(listViewFinder, findsOneWidget);
await $.pump(const Duration(milliseconds: 500));
final PatrolFinder entriesFinder = await $(listViewFinder) //
.$(CardItemTemplateComponentWidget)
.waitUntilVisible();
expect(entriesFinder, findsWidgets);
if (entriesFinder.evaluate().isNotEmpty) {
await $(entriesFinder.first) //
.waitUntilVisible()
.tap();
await $.pumpAndSettle();
}
},
);
}
static Future unlinkLocal() async {
patrolWidgetTest('Desvincular do local selecionado', //
// patrolWidgetTest(
// 'Desvincular do local selecionado com multiplos locais disponiveis', //
// (PatrolTester tester) async {
// $ = tester;
// $.tester.printToConsole(
// 'Locals Test - Desvincular do local selecionado com multiplos locais disponiveis');
//
// await _loggedWithMultiLocalsAccount();
// await $.pumpWidgetAndSettle(const App());
// await $.waitUntilVisible($(MenuStaggeredView));
//
// final PatrolFinder gridView = await $(GridView) //
// .waitUntilVisible();
// final PatrolFinder entries = await $(gridView)
// .$(ButtonMenuItem) //
// .waitUntilVisible();
//
// await $.pumpAndSettle();
// expect(entries, findsWidgets);
// final PatrolFinder settings = await $(gridView) //
// .$(Icons.settings)
// .waitUntilVisible();
// expect(settings, findsOneWidget);
//
// await $(settings).tap();
//
// final PatrolFinder unlinkButton = await $(Symbols.digital_out_of_home) //
// .waitUntilVisible();
// expect(unlinkButton, findsOneWidget);
// await $(unlinkButton) //
// .waitUntilVisible()
// .tap();
//
// final PatrolFinder alertDialog = await $(#AlertDialogKey) //
// .waitUntilVisible();
// await alertDialog
// .$(#AcceptOptionKey) //
// .waitUntilVisible()
// .tap(settlePolicy: SettlePolicy.noSettle);
//
// await $.pump();
// await $.pump(const Duration(seconds: 1));
// await $.pump();
//
// final PatrolFinder bottomSheetFinder =
// await $(BottomArrowLinkedLocalsComponentWidget) //
// .waitUntilVisible();
//
// expect(bottomSheetFinder, findsOneWidget);
//
// final PatrolFinder listViewFinder = await $(bottomSheetFinder) //
// .$(ListView)
// .waitUntilVisible();
//
// expect(listViewFinder, findsOneWidget);
//
// final PatrolFinder entriesFinder = await $(listViewFinder)
// .$(CardItemTemplateComponentWidget)
// .waitUntilVisible();
//
// expect(entriesFinder, findsWidgets);
// });
//
// patrolWidgetTest(
// 'Vincular um local desvinculado com multiplos locais disponiveis', //
// (PatrolTester tester) async {
// $ = tester;
// $.tester.printToConsole('Locals Test - Vincular um local desvinculado');
//
// await _loggedWithMultiLocalsAccount(false);
// await $.pumpWidget(const App());
//
// final PatrolFinder bottomSheetFinder =
// await $(BottomArrowLinkedLocalsComponentWidget) //
// .waitUntilVisible();
// expect(bottomSheetFinder, findsOneWidget);
//
// await $.pump(const Duration(milliseconds: 500));
//
// final PatrolFinder listViewFinder = $(bottomSheetFinder) //
// .$(ListView);
// expect(listViewFinder, findsOneWidget);
//
// await $.pump(const Duration(milliseconds: 500));
//
// final PatrolFinder entriesFinder = $(listViewFinder) //
// .$(CardItemTemplateComponentWidget);
// expect(entriesFinder, findsWidgets);
//
// if (entriesFinder.evaluate().isNotEmpty) {
// await $(entriesFinder.first).waitUntilVisible().tap();
//
// final PatrolFinder alertDialog = await $(#AlertDialogKey) //
// .waitUntilVisible();
// await alertDialog
// .$(#AcceptOptionKey) //
// .waitUntilVisible()
// .tap(settlePolicy: SettlePolicy.noSettle);
// }
//
// await Future.delayed(const Duration(milliseconds: 500));
//
// // try {
// // await $.pumpAndSettle(
// // duration: const Duration(seconds: 2),
// // phase: EnginePhase.sendSemanticsUpdate,
// // timeout: const Duration(seconds: 2),
// // );
// // throw Exception('Local está vinculado');
// // } catch (e) {
// // await Future.delayed(const Duration(milliseconds: 500));
// // return;
// // }
// },
// );
patrolWidgetTest(
'Desvincular do local selecionado com somente um local disponivel', //
(PatrolTester tester) async {
$ = tester;
$.tester.printToConsole('Locals Test - Desvincular do local selecionado');
$.tester.printToConsole(
'Locals Test - Desvincular do local selecionado com multiplos locais disponiveis');
await _logged();
await _loggedWithSomeoneLocalAccount();
await $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView));
@ -111,12 +248,12 @@ class LocalsTest {
});
patrolWidgetTest(
'Vincular um local desvinculado', //
'Vincular um local desvinculado com somente um local disponivel', //
(PatrolTester tester) async {
$ = tester;
$.tester.printToConsole('Locals Test - Vincular um local desvinculado');
await _logged(false);
await _loggedWithSomeoneLocalAccount(false);
await $.pumpWidget(const App());
final PatrolFinder bottomSheetFinder =
@ -166,10 +303,45 @@ class LocalsTest {
static Future attachLocal() async {
patrolWidgetTest(
'Selecionar um local disponível', //
'Selecionar um local disponível com multíplos locais disponíveis', //
(PatrolTester tester) async {
$ = tester;
await _logged();
await _loggedWithMultiLocalsAccount();
await $.pumpWidget(const App());
late Map<String, String> credentials;
final PatrolFinder throwsException = $('');
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 $.pumpWidget(const App());
await _navigateToSignUp($);
await _auth(credentials, $, throwsException);
credentials = {
'emailTextFormField': email,
'passwordTextFormField': password
};
await _auth(credentials, $, throwsException);
await $.pumpAndSettle();
await StorageHelper() //
.set(ProfileStorageKey.clientUUID.key, '7');
await $.pumpAndSettle();
await Future.delayed(const Duration(milliseconds: 500));
return;
},
);
patrolWidgetTest(
'Selecionar um local disponível com somente um local disponível', //
(PatrolTester tester) async {
$ = tester;
await _loggedWithSomeoneLocalAccount();
await $.pumpWidget(const App());
late Map<String, String> credentials;
final PatrolFinder throwsException = $('');

View File

@ -3,13 +3,14 @@ part of 'app_test.dart';
class MenuTest {
static Future labels2AppbarConsistency() async {
patrolWidgetTest(
'As labels dos menuItems correspondem aos títulos das AppBars?', //
'As labels dos menuItems correspondem aos títulos das AppBars? (MultiLocais)',
//
(PatrolTester tester) async {
$ = tester;
$.tester.printToConsole(
'Menu Test - As labels dos menuItems correspondem aos títulos das AppBars?');
await _logged();
await _loggedWithMultiLocalsAccount();
await $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView));
@ -96,12 +97,51 @@ class MenuTest {
static Future containEntries() async {
patrolWidgetTest(
'HomeMenu contém seus itens?', //
'HomeMenu contém seus itens? (MultiLocais)', //
(PatrolTester tester) async {
$ = tester;
$.tester.printToConsole('Menu Test - HomeMenu contém seus itens?');
await _logged();
await _loggedWithMultiLocalsAccount();
await $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView));
await $.waitUntilVisible($(GridView));
final PatrolFinder gridEntries = await $(GridView) //
.$(ButtonMenuItem)
.waitUntilVisible();
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();
await $.pumpAndSettle();
final List<MenuEntry> entries = MenuEntry.entries;
await $.pumpAndSettle();
final List<String> entriesKey = entries
.where((entry) => entry.types.contains(MenuEntryType.Home))
.map((entry) => entry.key)
.toList();
await $.pumpAndSettle();
expect(entriesKey, containsAll(menuKeys));
},
);
patrolWidgetTest(
'HomeMenu contém seus itens? (MonoLocal)', //
(PatrolTester tester) async {
$ = tester;
$.tester.printToConsole('Menu Test - HomeMenu contém seus itens?');
await _loggedWithSomeoneLocalAccount();
await $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView));
@ -136,12 +176,59 @@ class MenuTest {
);
patrolWidgetTest(
'DrawerMenu contém seus itens?', //
'DrawerMenu contém seus itens? (MultiLocais)', //
(PatrolTester tester) async {
$ = tester;
$.tester.printToConsole('Menu Test - DrawerMenu contém seus itens?');
await _logged();
await _loggedWithMultiLocalsAccount();
await $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView));
await $.waitUntilVisible($(GridView));
final PatrolFinder gridEntries = await $(GridView) //
.$(ButtonMenuItem)
.waitUntilVisible();
expect(gridEntries, findsWidgets);
await $(Icons.menu_rounded).waitUntilVisible().tap();
await $.waitUntilVisible($(ListView));
final PatrolFinder listEntries = await $(ListView) //
.$(CardMenuItem)
.waitUntilVisible();
expect(listEntries, findsWidgets);
final List<String?> menuKeys = listEntries
.evaluate()
.map((element) {
final key = element.widget.key;
if (key is ValueKey<String>) {
return key.value;
}
return null;
})
.where((key) => key != null)
.toList();
await $.pumpAndSettle();
final List<MenuEntry> entries = MenuEntry.entries;
await $.pumpAndSettle();
final List<String> entriesKey = entries
.where((entry) => entry.types.contains(MenuEntryType.Drawer))
.map((entry) => entry.key)
.toList();
await $.pumpAndSettle();
expect(entriesKey, containsAll(menuKeys));
await Future.delayed(const Duration(milliseconds: 500));
},
);
patrolWidgetTest(
'DrawerMenu contém seus itens? (MonoLocal)', //
(PatrolTester tester) async {
$ = tester;
$.tester.printToConsole('Menu Test - DrawerMenu contém seus itens?');
await _loggedWithSomeoneLocalAccount();
await $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView));
@ -186,12 +273,12 @@ class MenuTest {
static Future navToEntries() async {
patrolWidgetTest(
'Navegação entre items do Menu',
'Navegação entre items do Menu (MultiLocais)',
(PatrolTester tester) async {
$ = tester;
$.tester.printToConsole('Menu Test - Navegação entre items do Menu');
await _logged();
await _loggedWithMultiLocalsAccount();
await $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView));

View File

@ -2,13 +2,40 @@ part of 'app_test.dart';
class ModularizationTest {
static Future containLicense() async {
patrolWidgetTest('Os modulos de licença está sendo processados?',
patrolWidgetTest(
'Os modulos de licença está sendo processados? (MultiLocais)',
(PatrolTester tester) async {
$ = tester;
$.tester.printToConsole(
'Modularization Test - Os modulos de licença está sendo processados?');
await _logged();
await _loggedWithMultiLocalsAccount();
await $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView));
final LicenseRepository licenseRepository = LicenseRepositoryImpl();
final List<String> result = await licenseRepository.getLicense();
expect(result, isNotEmpty);
await $.pumpAndSettle();
final List<MenuEntry> entries = MenuEntry.entries;
final List<String> entriesKey = entries
.where((entry) => entry.types.contains(MenuEntryType.Home))
.map((entry) => '{key: ${entry.key}}')
.toList();
expect(result, containsAll(entriesKey));
return;
});
patrolWidgetTest(
'Os modulos de licença está sendo processados? (MonoLocal)',
(PatrolTester tester) async {
$ = tester;
$.tester.printToConsole(
'Modularization Test - Os modulos de licença está sendo processados?');
await _loggedWithSomeoneLocalAccount();
await $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView));
@ -36,7 +63,7 @@ class ModularizationTest {
$ = tester;
$.tester.printToConsole('Licença está sendo atualizada?');
await _logged();
await _loggedWithMultiLocalsAccount();
await $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView));

View File

@ -1,6 +1,7 @@
part of 'app_test.dart';
Future<void> _logged([bool forceLinkedLocal = true]) async {
Future<void> _loggedWithMultiLocalsAccount(
[bool forceLinkedLocal = true]) async {
await initializeApp();
await StorageHelper() //
.set(SecureStorageKey.isLogged.value, 'true');
@ -14,7 +15,36 @@ Future<void> _logged([bool forceLinkedLocal = true]) async {
await StorageHelper() //
.set(SecureStorageKey.email.value, 'email_app@exemplo.com');
await StorageHelper() //
.set(SecureStorageKey.password.value, '123456');
.set(SecureStorageKey.password.value, '12345678');
await StorageHelper() //
.set(LocalsStorageKey.isNewVersion.key, true);
if (forceLinkedLocal == true) {
await StorageHelper() //
.set(ProfileStorageKey.clientUUID.key, '7');
await PhpGroup //
.resopndeVinculo
.call(tarefa: 'A');
await LicenseRepositoryImpl() //
.resetLicense();
}
}
Future<void> _loggedWithSomeoneLocalAccount(
[bool forceLinkedLocal = true]) async {
await initializeApp();
await StorageHelper() //
.set(SecureStorageKey.isLogged.value, 'true');
await StorageHelper() //
.set(SecureStorageKey.haveLocal.value, 'true');
await StorageHelper() //
.set(ProfileStorageKey.devUUID.key, 'ca838e17f4139268');
await StorageHelper() //
.set(ProfileStorageKey.userUUID.key, '678aa05b0c2154.50583237');
await StorageHelper() //
.set(SecureStorageKey.email.value, 'local_teste8@exemplo.com');
await StorageHelper() //
.set(SecureStorageKey.password.value, '12345678');
await StorageHelper() //
.set(LocalsStorageKey.isNewVersion.key, true);
if (forceLinkedLocal == true) {