diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt index bfcc1181dd35..fd829729ad16 100644 --- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt +++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt @@ -5,8 +5,8 @@ import net.mullvad.mullvadvpn.test.common.constant.LOGIN_FAILURE_TIMEOUT import net.mullvad.mullvadvpn.test.common.extension.clickAgreeOnPrivacyDisclaimer import net.mullvad.mullvadvpn.test.common.extension.clickAllowOnNotificationPermissionPromptIfApiLevel33AndAbove import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout -import net.mullvad.mullvadvpn.test.e2e.annotations.HighlyRateLimited import net.mullvad.mullvadvpn.test.e2e.misc.AccountTestRule +import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.RegisterExtension @@ -27,7 +27,7 @@ class LoginTest : EndToEndTest(BuildConfig.FLAVOR_infrastructure) { } @Test - @HighlyRateLimited + @Disabled("Failed login attempts are highly rate limited and cause test flakiness") fun testLoginWithInvalidCredentials() { // Given val invalidDummyAccountNumber = accountTestRule.invalidAccountNumber diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/SimpleMullvadHttpClient.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/SimpleMullvadHttpClient.kt index 734f26653749..eaff4290eddd 100644 --- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/SimpleMullvadHttpClient.kt +++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/SimpleMullvadHttpClient.kt @@ -194,7 +194,14 @@ class SimpleMullvadHttpClient(context: Context) { "Unable to verify account due to invalid account or connectivity issues." private val onErrorResponse = { error: VolleyError -> - Logger.e("Response returned error status code: ${error.networkResponse.statusCode}") + if (error.networkResponse != null) { + Logger.e( + "Response returned error message: ${error.message} " + + "status code: ${error.networkResponse.statusCode}" + ) + } else { + Logger.e("Response returned error: ${error.message}") + } } } } diff --git a/android/test/firebase/e2e-play-stagemole.yml b/android/test/firebase/e2e-play-stagemole.yml index 9d3fe92eff9d..24cedac44857 100644 --- a/android/test/firebase/e2e-play-stagemole.yml +++ b/android/test/firebase/e2e-play-stagemole.yml @@ -5,6 +5,7 @@ default: test: android/test/e2e/build/outputs/apk/playStagemole/debug/e2e-play-stagemole-debug.apk timeout: 10m use-orchestrator: true + num-flaky-test-attempts: 1 device: - {model: shiba, version: 34, locale: en, orientation: portrait} # pixel 8 - {model: felix, version: 34, locale: en, orientation: portrait} # pixel fold diff --git a/android/test/firebase/mockapi-oss.yml b/android/test/firebase/mockapi-oss.yml index a1245f1d4f16..d9e180788fe0 100644 --- a/android/test/firebase/mockapi-oss.yml +++ b/android/test/firebase/mockapi-oss.yml @@ -5,6 +5,7 @@ default: test: android/test/mockapi/build/outputs/apk/oss/debug/mockapi-oss-debug.apk timeout: 10m use-orchestrator: true + num-flaky-test-attempts: 1 device: - {model: shiba, version: 34, locale: en, orientation: portrait} - {model: tangorpro, version: 33, locale: en, orientation: portrait}