summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2025-11-21 15:17:50 +0100
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2025-11-21 15:17:50 +0100
commit9a57656709bd76310a83a3ca1149b009d3f9611b (patch)
tree1d8952e512c13e99641a02f65570ab238e63933e
parent4845dcc29ca88c414ba31b39bd951a11af3e71ee (diff)
parent9fc0e7505deecf1e086554c2cdee4ed3c7c9c679 (diff)
downloadmullvadvpn-9a57656709bd76310a83a3ca1149b009d3f9611b.tar.xz
mullvadvpn-9a57656709bd76310a83a3ca1149b009d3f9611b.zip
Merge branch 'make-e2e-tests-more-robus'
-rw-r--r--android/lib/ui/designsystem/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/designsystem/ListItem.kt3
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/api/partner/PartnerApi.kt14
2 files changed, 16 insertions, 1 deletions
diff --git a/android/lib/ui/designsystem/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/designsystem/ListItem.kt b/android/lib/ui/designsystem/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/designsystem/ListItem.kt
index d3beb7ddb8..629619bf5d 100644
--- a/android/lib/ui/designsystem/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/designsystem/ListItem.kt
+++ b/android/lib/ui/designsystem/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/designsystem/ListItem.kt
@@ -36,6 +36,8 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.testTag
+import androidx.compose.ui.semantics.selected
+import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewFontScale
@@ -135,6 +137,7 @@ fun MullvadListItem(
.applyIfNotNull(onClick, and = isEnabled) {
combinedClickable(enabled = true, onClick = it, onLongClick = onLongClick)
}
+ .semantics { selected = isSelected }
.padding(start = ListTokens.listItemPaddingStart + hierarchy.paddingStart),
verticalAlignment = Alignment.CenterVertically,
) {
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/api/partner/PartnerApi.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/api/partner/PartnerApi.kt
index 4d2e0ff198..4e959ba4d5 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/api/partner/PartnerApi.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/api/partner/PartnerApi.kt
@@ -1,8 +1,10 @@
package net.mullvad.mullvadvpn.test.e2e.api.partner
+import co.touchlab.kermit.Logger
import io.ktor.client.HttpClient
import io.ktor.client.call.body
import io.ktor.client.engine.cio.CIO
+import io.ktor.client.plugins.HttpRequestRetry
import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
import io.ktor.client.plugins.defaultRequest
import io.ktor.client.plugins.logging.LogLevel
@@ -34,6 +36,11 @@ class PartnerApi(base64AuthCredentials: String) {
level = LogLevel.INFO
sanitizeHeader { header -> header == HttpHeaders.Authorization }
}
+ install(HttpRequestRetry) {
+ retryOnException(maxRetries = MAX_RETRIES, retryOnTimeout = true)
+ retryOnServerErrors(maxRetries = MAX_RETRIES)
+ exponentialDelay()
+ }
defaultRequest {
url {
@@ -65,10 +72,15 @@ class PartnerApi(base64AuthCredentials: String) {
suspend fun deleteAccount(accountNumber: String) =
withContext(Dispatchers.IO) {
- client.delete { url { path("$ACCOUNT_PATH/$accountNumber") } }
+ try {
+ client.delete { url { path("$ACCOUNT_PATH/$accountNumber") } }
+ } catch (e: Throwable) {
+ Logger.e("Could not delete account", e)
+ }
}
companion object {
+ private const val MAX_RETRIES = 3
private const val BASE_URL = "partner.${BuildConfig.INFRASTRUCTURE_BASE_DOMAIN}"
private const val ACCOUNT_PATH = "v1/accounts"
}