Skip to content
Snippets Groups Projects
app_test.dart 11.61 KiB
// Imports the Flutter Driver API.
import 'dart:async';
import 'dart:io';
import 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart';
// import 'package:flutter/services.dart';

void main() {
  int globalTimeout = 2;
  group('Gecko App', () {
    // First, define the Finders and use them to locate widgets from the
    // test suite. Note: the Strings provided to the `byValueKey` method must
    // be the same as the Strings we used for the Keys in step 1.
    final manageWalletsFinder = find.byValueKey('manageWallets');
    // final buttonFinder = find.byValueKey('increment');

    FlutterDriver driver;
    String pinCode;

    // Connect to the Flutter driver before running any tests.
    setUpAll(() async {
      driver = await FlutterDriver.connect();
      await driver.waitUntilFirstFrameRasterized();
    });

    // Close the connection to the driver after the tests have completed.
    tearDownAll(() async {
      if (driver != null) {
        driver.close();
      }
    });

    // Function to tap the widget by key
    Future tapOn(String key) async {
      await driver.tap(find.byValueKey(key));
    }

    Future<String> getText(String text) async {
      return await driver.getText(find.byValueKey(
        text,
      ));
    }

    Future<bool> isPresent(SerializableFinder byValueKey,
        {Duration timeout = const Duration(seconds: 1)}) async {
      try {
        await driver.waitFor(byValueKey, timeout: timeout);
        return true;
      } catch (exception) {
        return false;
      }
    }

    test('OnBoarding - Open wallets management', (
        {timeout: Timeout.none}) async {
      // await driver.runUnsynchronized(() async { // Needed if we want to manage async drivers
      await driver.tap(manageWalletsFinder);

      print(
          '####################################################################');

      // If a wallet exist, go to delete theme all
      if (!await isPresent(find.byValueKey('goStep1'))) {
        await goBack();
        await tapOn('drawerMenu');
        await sleep(300);
        await tapOn('parameters');
        await sleep(300);
        await tapOn('deleteAllWallets');
        await sleep(300);