gecko/integration_test/scenarios/gecko_complete.dart

141 lines
4.3 KiB
Dart
Raw Normal View History

import 'package:flutter_dotenv/flutter_dotenv.dart';
2022-08-24 21:53:16 +02:00
import 'package:flutter_test/flutter_test.dart';
import 'package:gecko/models/widgets_keys.dart';
import 'package:integration_test/integration_test.dart';
2022-09-09 01:12:17 +02:00
import '../utility/general_actions.dart';
import '../utility/tests_utility.dart';
2022-08-24 21:53:16 +02:00
void main() async {
2022-08-24 21:53:16 +02:00
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
await dotenv.load();
2022-08-24 21:53:16 +02:00
testWidgets('Gecko complete', (testerLoc) async {
// Share WidgetTester to test provider
tester = testerLoc;
// Start app and wait finish starting
await startWait();
2022-08-24 21:53:16 +02:00
// Change Duniter endpoint to local
await changeNode();
2022-08-24 21:53:16 +02:00
// Delete all existing chests is exists
await deleteAllWallets();
2022-08-24 21:53:16 +02:00
// Restore the test chest
await restoreChest();
2022-08-24 21:53:16 +02:00
// Execute a transaction to test5
await payTest2();
2022-08-24 21:53:16 +02:00
// Certify test5 account with 3 accounts to become member
await certifyTest5();
}, timeout: testTimeout());
2022-08-24 21:53:16 +02:00
}
Future payTest2() async {
2022-09-09 01:12:17 +02:00
spawnBlock(until: 13);
await waitFor('Rechercher');
await tapKey(keyOpenSearch);
final addressToSearch = await clipPaste();
final endAddress = addressToSearch.substring(addressToSearch.length - 6);
2022-08-27 05:43:43 +02:00
expect(addressToSearch, test5.address);
await enterText(keySearchField, addressToSearch);
await tapKey(keyConfirmSearch);
await waitFor(endAddress);
await tapKey(keySearchResult(addressToSearch));
await waitFor(endAddress);
2022-09-11 13:14:52 +02:00
await waitFor('0.0', exactMatch: true);
await tapKey(keyPay);
await enterText(keyAmountField, '12.14');
await tapKey(keyConfirmPayment);
spawnBlock(duration: 500);
2023-02-02 19:59:11 +01:00
await waitFor('validée !', timeout: const Duration(seconds: 1));
await tapKey(keyCloseTransactionScreen, duration: 0);
await waitFor('12.14');
spawnBlock(duration: 500);
await waitFor('9.14');
humanRead(2);
2022-08-24 21:53:16 +02:00
}
Future certifyTest5() async {
2022-08-24 21:53:16 +02:00
// Create identity with Test1 account
await tapKey(keyCertify);
await tapKey(keyConfirm);
spawnBlock(duration: 500);
2023-02-02 19:59:11 +01:00
await waitFor('validée !', timeout: const Duration(seconds: 1));
await tapKey(keyCloseTransactionScreen);
await waitFor('Identité créée');
2022-08-24 21:53:16 +02:00
// Confirm Identity Test5
await tapKey(keyAppBarChest, duration: 300);
await tapKey(keyOpenWallet(test5.address));
await tapKey(keyCopyAddress);
humanRead(3);
await tapKey(keyConfirmIdentity);
await enterText(keyEnterIdentityUsername, test5.name);
await tapKey(keyConfirm);
spawnBlock(duration: 500);
2023-02-02 19:59:11 +01:00
await waitFor('validée !', timeout: const Duration(seconds: 1));
await tapKey(keyCloseTransactionScreen);
await waitFor('Identité confirmée');
humanRead(2);
// Set wallet 2 as default wallet
await goBack();
await tapKey(keyOpenWallet(test2.address));
await tapKey(keySetDefaultWallet);
await waitFor('Ce portefeuille est celui par defaut');
2022-08-24 21:53:16 +02:00
// Search Wallet 5 again
await tapKey(keyAppBarSearch);
final addressToSearch = await clipPaste();
final endAddress = addressToSearch.substring(addressToSearch.length - 6);
2022-08-27 05:43:43 +02:00
expect(addressToSearch, test5.address);
await enterText(keySearchField, addressToSearch);
await tapKey(keyConfirmSearch);
await waitFor(endAddress);
await tapKey(keySearchResult(addressToSearch));
await waitFor(endAddress);
await waitFor('1');
2022-08-24 21:53:16 +02:00
// Certify with test2 account
await tapKey(keyCertify);
await tapKey(keyConfirm);
spawnBlock(duration: 500);
2023-02-02 19:59:11 +01:00
await waitFor('validée !', timeout: const Duration(seconds: 1));
await tapKey(keyCloseTransactionScreen);
await waitFor('2');
2022-08-24 21:53:16 +02:00
// Change default wallet to test3
await tapKey(keyPay);
await tapKey(keyChangeChest);
await tapKey(keySelectThisWallet(test3.address));
await tapKey(keyConfirm);
await sleep();
2022-08-24 21:53:16 +02:00
// Certify with test3 account
await tapKey(keyCertify);
await tapKey(keyConfirm);
spawnBlock(duration: 500);
2023-02-02 19:59:11 +01:00
await waitFor('validée !', timeout: const Duration(seconds: 1));
await tapKey(keyCloseTransactionScreen);
await waitFor('Vous devez attendre');
2022-08-24 21:53:16 +02:00
// Check if test5 is member
await tapKey(keyAppBarChest, duration: 300);
await tapKey(keyOpenWallet(test5.address));
await waitFor('Membre validé !');
// spawn 20 blocs and check if ud is creating
await spawnBlock(until: 20);
2022-09-09 01:12:17 +02:00
await waitFor('109.13');
await spawnBlock(until: 30);
await waitFor('209.13');
// Check UD reval
2022-09-09 01:12:17 +02:00
await spawnBlock(until: 60);
await waitFor('509.57');
humanRead(5);
2022-08-24 21:53:16 +02:00
}