gecko/integration_test/scenarios/gecko_complete.dart

157 lines
5.0 KiB
Dart
Raw Normal View History

2023-02-28 17:04:31 +01:00
import 'package:easy_localization/easy_localization.dart';
2023-04-01 01:28:43 +02:00
import 'package:flutter/material.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();
2023-03-10 17:54:35 +01:00
// await dotenv.load();
2022-08-24 21:53:16 +02:00
testWidgets('Gecko complete', (testerLoc) async {
2023-04-01 01:28:43 +02:00
FlutterError.onError = ignoreOverflowErrors;
// 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);
2023-02-28 17:04:31 +01:00
await waitFor('searchWallet'.tr());
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-04-01 01:28:43 +02:00
await tester.pump(const Duration(seconds: 2));
await waitFor('sending'.tr(),
2023-11-26 21:07:17 +01:00
reverse: true, timeout: const Duration(seconds: 20));
await waitFor('extrinsicValidated'.tr(args: ['transaction'.tr()]),
timeout: const Duration(seconds: 12));
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
2023-11-24 02:18:08 +01:00
await pump(number: 8);
await tapKey(keyCertify);
await tapKey(keyConfirm);
2023-04-01 01:28:43 +02:00
spawnBlock(duration: 1000);
2023-11-24 02:18:08 +01:00
await pump(number: 3);
2023-04-01 01:28:43 +02:00
await waitFor('sending'.tr(),
2023-11-26 21:07:17 +01:00
reverse: true, timeout: const Duration(seconds: 20));
await waitFor('extrinsicValidated'.tr(args: ['certification'.tr()]),
timeout: const Duration(seconds: 6));
await tapKey(keyCloseTransactionScreen);
2023-02-28 17:04:31 +01:00
await waitFor('identityCreated'.tr());
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);
2023-04-01 01:28:43 +02:00
spawnBlock(duration: 1000);
2023-11-24 02:18:08 +01:00
await pump(number: 3);
2023-04-01 01:28:43 +02:00
await waitFor('sending'.tr(),
2023-11-26 21:07:17 +01:00
reverse: true, timeout: const Duration(seconds: 20));
await tapKey(keyCloseTransactionScreen);
2023-02-28 17:04:31 +01:00
await waitFor('identityConfirmed'.tr());
humanRead(2);
// Set wallet 2 as default wallet
await goBack();
await tapKey(keyOpenWallet(test2.address));
await tapKey(keySetDefaultWallet);
2023-02-28 17:04:31 +01:00
await waitFor('thisWalletIsDefault'.tr());
2022-08-24 21:53:16 +02:00
// Search Wallet 5 again
await tapKey(keyAppBarHome);
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);
2023-04-01 01:28:43 +02:00
spawnBlock(duration: 1000);
2023-11-24 02:18:08 +01:00
await pump(number: 3);
2023-04-01 01:28:43 +02:00
await waitFor('sending'.tr(),
reverse: true, settle: false, timeout: const Duration(seconds: 20));
await tapKey(keyCloseTransactionScreen);
await waitFor('2');
2022-08-24 21:53:16 +02:00
// Change default wallet to test3
await tapKey(keyPay);
2023-11-24 02:18:08 +01:00
await tapKey(keyDropdownWallets);
await tapKey(keySelectThisWallet(test3.address));
2023-11-24 02:18:08 +01:00
await tapKey(keyPopButton);
await sleep();
2022-08-24 21:53:16 +02:00
// Certify with test3 account
await tapKey(keyCertify);
await tapKey(keyConfirm);
2023-04-01 01:28:43 +02:00
spawnBlock(duration: 1000);
2023-11-24 02:18:08 +01:00
await pump(number: 3);
2023-04-01 01:28:43 +02:00
await waitFor('sending'.tr(),
reverse: true, settle: false, timeout: const Duration(seconds: 20));
await tapKey(keyCloseTransactionScreen);
2023-04-01 01:28:43 +02:00
await waitFor('mustWaitXBeforeCertify'.tr().substring(0, 8));
2022-08-24 21:53:16 +02:00
// Check if test5 is member
await tapKey(keyAppBarChest, duration: 300);
await tapKey(keyOpenWallet(test5.address));
2023-02-28 17:04:31 +01:00
await waitFor('memberValidated'.tr());
// 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
}