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.signInToSignUp();
// WelcomeTest.signUpToSignIn(); // WelcomeTest.signUpToSignIn();
// AuthenticationTest.signIn(); AuthenticationTest.signIn();
AuthenticationTest.signUp(); // AuthenticationTest.signUp();
// AuthenticationTest.signOut(); // AuthenticationTest.signOut();
// //
// 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();

View File

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

View File

@ -2,13 +2,57 @@ part of 'app_test.dart';
class LocalsTest { class LocalsTest {
static Future setLocal() async { 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( patrolWidgetTest(
'Selecionar um local disponível', // 'Selecionar um local disponível com somente um local disponivel', //
(PatrolTester tester) async { (PatrolTester tester) async {
$ = tester; $ = tester;
$.tester.printToConsole('Locals Test - Selecionar um local disponível'); $.tester.printToConsole('Locals Test - Selecionar um local disponível');
await _logged(false); await _loggedWithSomeoneLocalAccount(false);
await $.pumpWidgetAndSettle(const App()); await $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView)); await $.waitUntilVisible($(MenuStaggeredView));
await $.waitUntilVisible($(LocalProfileComponentWidget)); await $.waitUntilVisible($(LocalProfileComponentWidget));
@ -20,41 +64,134 @@ class LocalsTest {
await $(profileFinder) // await $(profileFinder) //
.waitUntilVisible() .waitUntilVisible()
.tap(); .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 { 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 { (PatrolTester tester) async {
$ = tester; $ = 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 $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView)); await $.waitUntilVisible($(MenuStaggeredView));
@ -111,12 +248,12 @@ class LocalsTest {
}); });
patrolWidgetTest( patrolWidgetTest(
'Vincular um local desvinculado', // 'Vincular um local desvinculado com somente um local disponivel', //
(PatrolTester tester) async { (PatrolTester tester) async {
$ = tester; $ = tester;
$.tester.printToConsole('Locals Test - Vincular um local desvinculado'); $.tester.printToConsole('Locals Test - Vincular um local desvinculado');
await _logged(false); await _loggedWithSomeoneLocalAccount(false);
await $.pumpWidget(const App()); await $.pumpWidget(const App());
final PatrolFinder bottomSheetFinder = final PatrolFinder bottomSheetFinder =
@ -166,10 +303,45 @@ class LocalsTest {
static Future attachLocal() async { static Future attachLocal() async {
patrolWidgetTest( patrolWidgetTest(
'Selecionar um local disponível', // 'Selecionar um local disponível com multíplos locais disponíveis', //
(PatrolTester tester) async { (PatrolTester tester) async {
$ = tester; $ = 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()); await $.pumpWidget(const App());
late Map<String, String> credentials; late Map<String, String> credentials;
final PatrolFinder throwsException = $(''); final PatrolFinder throwsException = $('');

View File

@ -3,13 +3,14 @@ part of 'app_test.dart';
class MenuTest { class MenuTest {
static Future labels2AppbarConsistency() async { static Future labels2AppbarConsistency() async {
patrolWidgetTest( 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 { (PatrolTester tester) async {
$ = tester; $ = tester;
$.tester.printToConsole( $.tester.printToConsole(
'Menu Test - As labels dos menuItems correspondem aos títulos das AppBars?'); 'Menu Test - As labels dos menuItems correspondem aos títulos das AppBars?');
await _logged(); await _loggedWithMultiLocalsAccount();
await $.pumpWidgetAndSettle(const App()); await $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView)); await $.waitUntilVisible($(MenuStaggeredView));
@ -96,12 +97,51 @@ class MenuTest {
static Future containEntries() async { static Future containEntries() async {
patrolWidgetTest( patrolWidgetTest(
'HomeMenu contém seus itens?', // 'HomeMenu contém seus itens? (MultiLocais)', //
(PatrolTester tester) async { (PatrolTester tester) async {
$ = tester; $ = tester;
$.tester.printToConsole('Menu Test - HomeMenu contém seus itens?'); $.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 $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView)); await $.waitUntilVisible($(MenuStaggeredView));
@ -136,12 +176,59 @@ class MenuTest {
); );
patrolWidgetTest( patrolWidgetTest(
'DrawerMenu contém seus itens?', // 'DrawerMenu contém seus itens? (MultiLocais)', //
(PatrolTester tester) async { (PatrolTester tester) async {
$ = tester; $ = tester;
$.tester.printToConsole('Menu Test - DrawerMenu contém seus itens?'); $.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 $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView)); await $.waitUntilVisible($(MenuStaggeredView));
@ -186,12 +273,12 @@ class MenuTest {
static Future navToEntries() async { static Future navToEntries() async {
patrolWidgetTest( patrolWidgetTest(
'Navegação entre items do Menu', 'Navegação entre items do Menu (MultiLocais)',
(PatrolTester tester) async { (PatrolTester tester) async {
$ = tester; $ = tester;
$.tester.printToConsole('Menu Test - Navegação entre items do Menu'); $.tester.printToConsole('Menu Test - Navegação entre items do Menu');
await _logged(); await _loggedWithMultiLocalsAccount();
await $.pumpWidgetAndSettle(const App()); await $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView)); await $.waitUntilVisible($(MenuStaggeredView));

View File

@ -2,13 +2,40 @@ part of 'app_test.dart';
class ModularizationTest { class ModularizationTest {
static Future containLicense() async { 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 { (PatrolTester tester) async {
$ = tester; $ = tester;
$.tester.printToConsole( $.tester.printToConsole(
'Modularization Test - Os modulos de licença está sendo processados?'); '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 $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView)); await $.waitUntilVisible($(MenuStaggeredView));
@ -36,7 +63,7 @@ class ModularizationTest {
$ = tester; $ = tester;
$.tester.printToConsole('Licença está sendo atualizada?'); $.tester.printToConsole('Licença está sendo atualizada?');
await _logged(); await _loggedWithMultiLocalsAccount();
await $.pumpWidgetAndSettle(const App()); await $.pumpWidgetAndSettle(const App());
await $.waitUntilVisible($(MenuStaggeredView)); await $.waitUntilVisible($(MenuStaggeredView));

View File

@ -1,6 +1,7 @@
part of 'app_test.dart'; part of 'app_test.dart';
Future<void> _logged([bool forceLinkedLocal = true]) async { Future<void> _loggedWithMultiLocalsAccount(
[bool forceLinkedLocal = true]) async {
await initializeApp(); await initializeApp();
await StorageHelper() // await StorageHelper() //
.set(SecureStorageKey.isLogged.value, 'true'); .set(SecureStorageKey.isLogged.value, 'true');
@ -14,7 +15,36 @@ Future<void> _logged([bool forceLinkedLocal = true]) async {
await StorageHelper() // await StorageHelper() //
.set(SecureStorageKey.email.value, 'email_app@exemplo.com'); .set(SecureStorageKey.email.value, 'email_app@exemplo.com');
await StorageHelper() // 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() // await StorageHelper() //
.set(LocalsStorageKey.isNewVersion.key, true); .set(LocalsStorageKey.isNewVersion.key, true);
if (forceLinkedLocal == true) { if (forceLinkedLocal == true) {