dev
dart 65 lines 2.84 KB
Raw
1 import 'package:flutter/material.dart';
2 import 'package:flutter_test/flutter_test.dart';
3 import 'package:integration_test/integration_test.dart';
4
5 import '../components/common_test_constants.dart';
6 import '../components/common_test_flows.dart';
7 import '../robots/dashboard_page_robot.dart';
8 import '../robots/exchange_confirm_page_robot.dart';
9 import '../robots/exchange_page_robot.dart';
10 import '../robots/exchange_trade_external_send_page_robot.dart';
11 import '../robots/exchange_trade_page_robot.dart';
12 import 'package:cake_wallet/.secrets.g.dart' as secrets;
13
14 void main() {
15 IntegrationTestWidgetsFlutterBinding.ensureInitialized();
16
17 CommonTestFlows commonTestFlows;
18 ExchangePageRobot exchangePageRobot;
19 DashboardPageRobot dashboardPageRobot;
20 ExchangeTradePageRobot exchangeTradePageRobot;
21 ExchangeConfirmPageRobot exchangeConfirmPageRobot;
22 ExchangeTradeExternalSendPageRobot exchangeTradeExternalSendPageRobot;
23
24 testWidgets('Exchange flow', (tester) async {
25 FlutterError.onError = (FlutterErrorDetails details) {
26 debugPrint('FlutterError caught: ${details.exception}');
27 };
28
29 commonTestFlows = CommonTestFlows(tester);
30 exchangePageRobot = ExchangePageRobot(tester);
31 dashboardPageRobot = DashboardPageRobot(tester);
32 exchangeTradePageRobot = ExchangeTradePageRobot(tester);
33 exchangeConfirmPageRobot = ExchangeConfirmPageRobot(tester);
34 exchangeTradeExternalSendPageRobot = ExchangeTradeExternalSendPageRobot(tester);
35
36 await commonTestFlows.startAppFlow(ValueKey('exchange_app_test_key'));
37 await commonTestFlows.welcomePageToRestoreWalletThroughSeedsFlow(
38 CommonTestConstants.testWalletType,
39 secrets.solanaTestWalletSeeds,
40 CommonTestConstants.pin,
41 );
42 await dashboardPageRobot.navigateToExchangePage();
43
44 // ----------- Exchange Page -------------
45 await exchangePageRobot.selectDepositCurrency(CommonTestConstants.exchangeTestDepositCurrency);
46 await exchangePageRobot.selectReceiveCurrency(CommonTestConstants.exchangeTestReceiveCurrency);
47
48 await exchangePageRobot.enterDepositAmount(CommonTestConstants.exchangeTestAmount);
49 await exchangePageRobot.enterDepositRefundAddress(
50 depositAddress: CommonTestConstants.testWalletAddress,
51 );
52 await exchangePageRobot.enterReceiveAddress(CommonTestConstants.testWalletAddress);
53 await exchangePageRobot.onExchangeButtonPressed();
54 await exchangePageRobot.handleErrors(CommonTestConstants.exchangeTestAmount);
55
56 await exchangeConfirmPageRobot.onSavedTradeIdButtonPressed();
57
58 await exchangeTradePageRobot.onGotItButtonPressed();
59 await exchangeTradePageRobot.onSendFromExternalButtonPressed();
60
61 await exchangeTradeExternalSendPageRobot.isExchangeTradeExternalSendPage();
62 await exchangeTradeExternalSendPageRobot.verifySendDetailsItemsDisplayProperly();
63 await exchangeTradeExternalSendPageRobot.onContinueButtonPressed();
64 });
65 }