File tree 4 files changed +33
-2
lines changed
src/main/kotlin/net/mullvad/mullvadvpn/test/e2e
4 files changed +33
-2
lines changed Original file line number Diff line number Diff line change @@ -46,6 +46,7 @@ android {
46
46
put(" clearPackageData" , " true" )
47
47
addOptionalPropertyAsArgument(" valid_test_account_number" )
48
48
addOptionalPropertyAsArgument(" invalid_test_account_number" )
49
+ addOptionalPropertyAsArgument(" ignore_highly_rate_limited_tests" )
49
50
}
50
51
}
51
52
Original file line number Diff line number Diff line change @@ -5,8 +5,8 @@ import net.mullvad.mullvadvpn.test.common.constant.LOGIN_FAILURE_TIMEOUT
5
5
import net.mullvad.mullvadvpn.test.common.extension.clickAgreeOnPrivacyDisclaimer
6
6
import net.mullvad.mullvadvpn.test.common.extension.clickAllowOnNotificationPermissionPromptIfApiLevel33AndAbove
7
7
import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout
8
+ import net.mullvad.mullvadvpn.test.e2e.annotations.HighlyRateLimited
8
9
import net.mullvad.mullvadvpn.test.e2e.misc.AccountTestRule
9
- import org.junit.jupiter.api.Disabled
10
10
import org.junit.jupiter.api.Test
11
11
import org.junit.jupiter.api.extension.RegisterExtension
12
12
@@ -27,7 +27,7 @@ class LoginTest : EndToEndTest(BuildConfig.FLAVOR_infrastructure) {
27
27
}
28
28
29
29
@Test
30
- @Disabled( " Disabled to avoid getting rate-limited. " )
30
+ @HighlyRateLimited
31
31
fun testLoginWithInvalidCredentials () {
32
32
// Given
33
33
val invalidDummyAccountNumber = accountTestRule.invalidAccountNumber
Original file line number Diff line number Diff line change
1
+ package net.mullvad.mullvadvpn.test.e2e.annotations
2
+
3
+ import androidx.test.platform.app.InstrumentationRegistry
4
+ import org.junit.jupiter.api.extension.ConditionEvaluationResult
5
+ import org.junit.jupiter.api.extension.ExecutionCondition
6
+ import org.junit.jupiter.api.extension.ExtendWith
7
+ import org.junit.jupiter.api.extension.ExtensionContext
8
+ import net.mullvad.mullvadvpn.test.e2e.constant.IGNORE_HIGHLY_RATE_LIMITED
9
+ import net.mullvad.mullvadvpn.test.e2e.extension.getRequiredArgument
10
+
11
+ /* *
12
+ * Annotation for tests making use of API endpoints/requests that are highly rate limited such as failed login requests.
13
+ */
14
+ @Retention(AnnotationRetention .RUNTIME )
15
+ @ExtendWith(HighlyRateLimited .ShouldRunWhenSeverelyAffectedByRateLimiting ::class )
16
+ annotation class HighlyRateLimited {
17
+ class ShouldRunWhenSeverelyAffectedByRateLimiting : ExecutionCondition {
18
+ override fun evaluateExecutionCondition (context : ExtensionContext ? ): ConditionEvaluationResult {
19
+ val ignoreHighlyRateLimited = InstrumentationRegistry .getArguments().getRequiredArgument(
20
+ IGNORE_HIGHLY_RATE_LIMITED ).toBoolean()
21
+
22
+ if (ignoreHighlyRateLimited) {
23
+ return ConditionEvaluationResult .disabled(" Skipping test because this run is configured to skip tests that are highly affected by rate limiting" )
24
+ } else {
25
+ return ConditionEvaluationResult .enabled(" Running test highly affected by rate limiting" )
26
+ }
27
+ }
28
+ }
29
+ }
Original file line number Diff line number Diff line change @@ -4,3 +4,4 @@ const val LOG_TAG = "mullvad-e2e"
4
4
const val PARTNER_AUTH = " partner_auth"
5
5
const val VALID_TEST_ACCOUNT_NUMBER_ARGUMENT_KEY = " valid_test_account_number"
6
6
const val INVALID_TEST_ACCOUNT_NUMBER_ARGUMENT_KEY = " invalid_test_account_number"
7
+ const val IGNORE_HIGHLY_RATE_LIMITED = " ignore_highly_rate_limited_tests"
You can’t perform that action at this time.
0 commit comments