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

113 lines
4 KiB
Markdown

# 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)
- Cardano preprod faucet requires captcha or API key
- Unable to fund the test wallet programmatically
- **Manual action needed:** Fund wallet via https://docs.cardano.org/cardano-testnets/tools/faucet/
### ❓ 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`
```kotlin
// 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:
```kotlin
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