element-x-ada/docs/build-logs/e2e-test-result.md

4 KiB

Element X ADA End-to-End Test Report

Date: 2026-03-28 Commit: 9613a1e6fc (on phase1-dev branch) Tester: Kayos (subagent)

Test Environment

  • Emulator: Android emulator (android-emulator container on Lucy)
  • ADB: Connected at emulator-5554
  • Network: Cardano Preprod Testnet
  • Test Account: @testbot-elementx:sulkta.com at mas.sulkta.com
  • APK: app-gplay-x86_64-debug.apk

Test Results

Sign In

  • OIDC login to Matrix Authentication Service works
  • App launches and connects to homeserver
  • Chat list displays correctly

Wallet Creation (Previously Tested)

  • Wallet was already created in a prior session
  • Wallet Address: addr_test1qz57gfnua79ajquraf9v86h4kc8zugeszpmnujd7ktqqkk7nupfaelycr785nh2jnh87jv6ehcfnnve78tfrmxxrm5gseddjqc
  • Mnemonic stored without biometric auth requirement (fix from commit 9e9192dd3b)

Payment Flow Entry

  • /pay slash command recognized and displayed in suggestions
  • Pressing send triggers the payment flow
  • Payment flow UI opens correctly with:
    • Testnet transaction warning
    • Available balance display (shows "0 ADA")
    • Amount input field
    • Recipient input field
    • Continue button

Koios API Integration

  • Fixed: Trailing slash added to Koios base URLs (required by Retrofit)
  • Fixed: Empty response handling for unfunded addresses
    • API returns [] for addresses with no history
    • Previously failed with "Response Body is Empty"
    • Now correctly returns 0 balance / empty UTXO list
  • Balance queries work correctly
  • Log shows: "Address has no history, returning 0 balance"

⚠️ Funding (Blocked)

Send ADA (Not Tested)

  • Cannot test without funds in wallet
  • Transaction building and signing flow untested
  • Payment card in Matrix timeline untested

Wallet Icon in Top Bar (Known Issue)

  • isDM=false for the test room (Cobbert)
  • Wallet icon not showing in DM room top bar
  • Workaround: Use /pay slash command instead

Bugs Fixed This Session

1. Koios Base URL Missing Trailing Slash

File: CardanoNetworkConfig.kt

// Before:
const val KOIOS_BASE_URL = "https://preprod.koios.rest/api/v1"
// After:
const val KOIOS_BASE_URL = "https://preprod.koios.rest/api/v1/"

This caused IllegalArgumentException: baseUrl must end in /

2. Empty Response Handling in KoiosCardanoClient

File: KoiosCardanoClient.kt

For unfunded addresses, Koios returns [] which the Java client interprets as empty/error. Added handling to return 0 balance instead of failing:

result.response?.contains("Empty") == true -> {
    Result.success(0L)  // 0 balance for unfunded address
}

Known Issues

  1. Wallet icon not appearing in DM rooms - isDM flag not being set correctly for some rooms
  2. Testnet faucet requires manual funding - No programmatic access without API key
  3. Transaction flow untested - Blocked by lack of funds

Recommendations

  1. For complete testing: Manually fund the wallet using the web faucet with captcha
  2. For isDM fix: Investigate why the "Cobbert" room has isDM=false
  3. For automated testing: Consider using a pre-funded testnet wallet or obtaining a faucet API key

Commits

  • 9e9192dd3b - Remove biometric requirement for mnemonic storage
  • 9613a1e6fc - Fix Koios API integration for unfunded addresses

What Works

  • App launch and login
  • Matrix sync and room list
  • Wallet creation (mnemonic generation, address derivation)
  • Payment flow entry via /pay command
  • Balance display (showing 0 ADA)
  • Koios API calls to preprod testnet
  • Error handling for unfunded addresses

What Needs Testing

  • Transaction building with actual UTXOs
  • Transaction signing
  • Transaction submission to Cardano network
  • Payment card rendering in Matrix timeline
  • Balance updates after transaction