cake_wallet/integration_test_runner.sh
David Adegoke 3ad04227a4
test: Attempting automation for testing (#1734)
* feat: Integration tests setup and tests for Disclaimer, Welcome and Setup Pin Code pages

* feat: Integration test flow from start to restoring a wallet successfully done

* test: Dashboard view test and linking to flow

* feat: Testing the Exchange flow section, selecting sending and receiving currencies

* test: Successfully create an exchange section

* feat: Implement flow up to sending section

* test: Complete Exchange flow

* fix dependency issue

* test: Final cleanups

* feat: Add CI to run automated integration tests withan android emulator

* feat: Adjust Automated integration test CI to run on ubuntu 20.04-a

* fix: Move integration test CI into PR test build CI

* ci: Add automated test ci which is a streamlined replica of pr test build ci

* ci: Re-add step to access branch name

* ci: Add KVM

* ci: Add filepath to trigger the test run from

* ci: Add required key

* ci: Add required key

* ci: Add missing secret key

* ci: Add missing secret key

* ci: Add nano secrets to workflow

* ci: Switch step to free space on runner

* ci: Remove timeout from workflow

* ci: Confirm impact that removing copy_monero_deps would have on entire workflow time

* ci: Update CI and temporarily remove cache related to emulator

* ci: Remove dynamic java version

* ci: Temporarily switch CI

* ci: Switch to 11.x jdk

* ci: Temporarily switch CI

* ci: Revert ubuntu version

* ci: Add more api levels

* ci: Add more target options

* ci: Settled on stable emulator matrix options

* ci: Add more target options

* ci: Modify flow

* ci: Streamline api levels to 28 and 29

* ci: One more trial

* ci: Switch to flutter drive

* ci: Reduce options

* ci: Remove haven from test

* ci: Check for solana in list

* ci: Adjust amounts and currencies for exchange flow

* ci: Set write response on failure to true

* ci: Split ci to funds and non funds related tests

* test: Test for Send flow scenario and minor restructuring for test folders and files

* chore: cleanup

* ci: Pause CI for now

* ci: Pause CI for now

* ci: Pause CI for now

* test: Restore wallets integration automated tests

* Fix: Add keys back to currency amount textfield widget

* fix: Switch variable name

* fix: remove automation for now

* tests: Automated tests for Create wallets flow

* tests: Further optimize common flows

* tests: Add missing await for call

* tests: Confirm Seeds Display Properly WIP

* tests: Confirm Seeds Display Correctly Automated Tests

* fix: Add missing pubspec params for bitcoin and bitcoin_cash

* feat: Automated Tests for Transaction History Flow

* fix: Add missing pubspec parameter

* feat: Automated Integration Tests for Transaction History flow

* test: Updating send page robot and also syncing branch with main

* test: Modifying tests to flow with wallet grouping implementation

* fix: Issue with transaction history test

* fix: Modifications to the PR and add automated confirmation for checking that all wallet types are restored or created correctly

* test: Attempting automation for testing

* test: Attempting automation for testing

* test: Print out working directory

* test: See if I can cut down time by removing the build step

* test: More logs

* test: Pubspec was not generated, checking if this fixes it

* test: Pubspec was not generated, checking if this fixes it

* test: Pubspec was not generated, checking if this fixes it

* test: Pubspec was not generated, checking if this fixes it

* test: Pubspec was not generated, checking if this fixes it

* test: Pubspec was not generated, checking if this fixes it

* test: Another trial

* test: Another trial

* test: Another trial

* test: Another trial

* test: Another trial

* test: Another trial

* fix: Adjust config file

* test: Add commands to generate files and set codebase up as new

* test: try another route

* test: try another route - 2

* test: try another route

* test: try another route - 2

* test: Uncomment KVM and optimizations-a

* test: Try with sudo permissions-a

* test: Try again

* test: Pause build and rename steps, see how faster it resolves

* test: Try using working directory

* test: Check details of current working directory

* test: Switch test run command from flutter drive to flutter test

* test: Adding secrets to CI workflow

* fix: add working directory to emulator and reactivate build step

* test: Add verbosity

* test: Check tat emulator is present and ready to connect

* test: Try a direct test to see if it'll trigger properly

* test: Try the flutter drive command

* test: Try uninstalling before running

* test: Create an aggregator test file as the entry point for all tests

* test: Try without awaiting each test

* test: Another trial at getting combined tests running

* test: Use a test runner script that'll be responsible for running all available integration tests

* test: Add command to make integration test runner file an executable

* test: Fix failing exchange flow test

* test: fix failing exchange flow test

* test: Fix issue with send flow test

* test: Fix issue with confirm seeds flow test

* test: Modify create and restore flows to reflect modified onboarding flow

* chore: Remove package declaration in AndroidManifestBase file to fix issue of it being deprecated

* test: Bump up flutter version

* fix: Add meld keys

* chore: Remove package name declarations from AndroidManifests

* better write close function definition
comment integration tests workflow for now

---------

Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
2024-12-13 21:45:41 +02:00

45 lines
1.1 KiB
Bash
Executable file

#!/bin/bash
declare -a targets
declare -a passed_tests
declare -a failed_tests
# Collect all Dart test files in the integration_test directory
while IFS= read -r -d $'\0' file; do
targets+=("$file")
done < <(find integration_test/test_suites -name "*.dart" -type f -print0)
# Run each test and collect results
for target in "${targets[@]}"
do
echo "Running test: $target"
if flutter drive \
--driver=test_driver/integration_test.dart \
--target="$target"; then
echo "✅ Test passed: $target"
passed_tests+=("$target")
else
echo "❌ Test failed: $target"
failed_tests+=("$target")
fi
done
# Provide a summary of test results
echo -e "\n===== Test Summary ====="
if [ ${#passed_tests[@]} -gt 0 ]; then
echo "✅ Passed Tests:"
for test in "${passed_tests[@]}"; do
echo " - $test"
done
fi
if [ ${#failed_tests[@]} -gt 0 ]; then
echo -e "\n❌ Failed Tests:"
for test in "${failed_tests[@]}"; do
echo " - $test"
done
# Exit with a non-zero status to indicate failure
exit 1
else
echo -e "\n🎉 All tests passed successfully!"
fi