detox 20.42.0 → 20.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Detox-android/com/wix/detox/{20.42.0/detox-20.42.0-sources.jar → 20.43.0/detox-20.43.0-sources.jar} +0 -0
- package/Detox-android/com/wix/detox/20.43.0/detox-20.43.0-sources.jar.md5 +1 -0
- package/Detox-android/com/wix/detox/20.43.0/detox-20.43.0-sources.jar.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.43.0/detox-20.43.0-sources.jar.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.43.0/detox-20.43.0-sources.jar.sha512 +1 -0
- package/Detox-android/com/wix/detox/20.43.0/detox-20.43.0.aar +0 -0
- package/Detox-android/com/wix/detox/20.43.0/detox-20.43.0.aar.md5 +1 -0
- package/Detox-android/com/wix/detox/20.43.0/detox-20.43.0.aar.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.43.0/detox-20.43.0.aar.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.43.0/detox-20.43.0.aar.sha512 +1 -0
- package/Detox-android/com/wix/detox/{20.42.0/detox-20.42.0.pom → 20.43.0/detox-20.43.0.pom} +1 -1
- package/Detox-android/com/wix/detox/20.43.0/detox-20.43.0.pom.md5 +1 -0
- package/Detox-android/com/wix/detox/20.43.0/detox-20.43.0.pom.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.43.0/detox-20.43.0.pom.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.43.0/detox-20.43.0.pom.sha512 +1 -0
- package/Detox-android/com/wix/detox/maven-metadata.xml +4 -4
- package/Detox-android/com/wix/detox/maven-metadata.xml.md5 +1 -1
- package/Detox-android/com/wix/detox/maven-metadata.xml.sha1 +1 -1
- package/Detox-android/com/wix/detox/maven-metadata.xml.sha256 +1 -1
- package/Detox-android/com/wix/detox/maven-metadata.xml.sha512 +1 -1
- package/Detox-ios-framework.tbz +0 -0
- package/Detox-ios-src.tbz +0 -0
- package/Detox-ios-xcuitest.tbz +0 -0
- package/android/detox/src/full/java/com/wix/detox/reactnative/idlingresources/animations/AnimatedModuleIdlingResource.kt +26 -9
- package/android/detox/src/full/java/com/wix/detox/reactnative/idlingresources/network/NetworkingModuleReflected.kt +10 -2
- package/android/detox/src/full/java/com/wix/detox/reactnative/idlingresources/timers/JavaTimersReflected.kt +14 -2
- package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/android/rninfo.gradle +5 -0
- package/package.json +10 -10
- package/scripts/updateGradle.js +5 -0
- package/Detox-android/com/wix/detox/20.42.0/detox-20.42.0-sources.jar.md5 +0 -1
- package/Detox-android/com/wix/detox/20.42.0/detox-20.42.0-sources.jar.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.42.0/detox-20.42.0-sources.jar.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.42.0/detox-20.42.0-sources.jar.sha512 +0 -1
- package/Detox-android/com/wix/detox/20.42.0/detox-20.42.0.aar +0 -0
- package/Detox-android/com/wix/detox/20.42.0/detox-20.42.0.aar.md5 +0 -1
- package/Detox-android/com/wix/detox/20.42.0/detox-20.42.0.aar.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.42.0/detox-20.42.0.aar.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.42.0/detox-20.42.0.aar.sha512 +0 -1
- package/Detox-android/com/wix/detox/20.42.0/detox-20.42.0.pom.md5 +0 -1
- package/Detox-android/com/wix/detox/20.42.0/detox-20.42.0.pom.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.42.0/detox-20.42.0.pom.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.42.0/detox-20.42.0.pom.sha512 +0 -1
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
016ffb2e4c490e01beafd1146a3a8353
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
097c3dad67f1dea0e2cdf756732aff413940b2c3
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
db8f2eb0cd02d2373018228e130132dc7d206625fcc2d7a54e6d9fa5a2d1f2e0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
011ea72685f18e86f4ab86048a93fa47ff5e213bfcc83b9c7eb3fec558668c895f09479a083cca75fa0e0b4306e7ac808db22d2dbdb16f7732bfd03df2a7f929
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
c9638ce7992b4b6dfe4f83030aef5169
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
a2ed68ce4b428750daf9a3542447273ee1c171d3
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
52c115c682f497fb9925388a3e3b607e6c8a2742a71547e2aeca2457c048c6c6
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1ff3bc63cd2de2916880bec7572f7fd48612955d6192a094af89edc97daa88c03b7d646999dda185900875337de07898e523e96067e284fd1137ce35c1c18baa
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<modelVersion>4.0.0</modelVersion>
|
|
4
4
|
<groupId>com.wix</groupId>
|
|
5
5
|
<artifactId>detox</artifactId>
|
|
6
|
-
<version>20.
|
|
6
|
+
<version>20.43.0</version>
|
|
7
7
|
<packaging>aar</packaging>
|
|
8
8
|
<name>Detox</name>
|
|
9
9
|
<description>Gray box end-to-end testing and automation library for mobile apps</description>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
17c5883f432236d65c08fef7086af8b6
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
06dfe524847a88faedbf0360272b4aaff6be4da0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
5394023ab0482b86513f82bfb0072233bb04d5b809a05d804085a2cd59c677a5
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
8433d0f377655a489d92691746233edc865b1040318b708f0a451aade0254bda5989a7bcd042ffe8ecd3e65fc636b0e945a58c86d616b590e6c24ed8974402a1
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
<groupId>com.wix</groupId>
|
|
4
4
|
<artifactId>detox</artifactId>
|
|
5
5
|
<versioning>
|
|
6
|
-
<latest>20.
|
|
7
|
-
<release>20.
|
|
6
|
+
<latest>20.43.0</latest>
|
|
7
|
+
<release>20.43.0</release>
|
|
8
8
|
<versions>
|
|
9
|
-
<version>20.
|
|
9
|
+
<version>20.43.0</version>
|
|
10
10
|
</versions>
|
|
11
|
-
<lastUpdated>
|
|
11
|
+
<lastUpdated>20251005174840</lastUpdated>
|
|
12
12
|
</versioning>
|
|
13
13
|
</metadata>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
886f630a5f15d5956dc1ee88ddc28a93
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
9827172d9c41c9c0b8aebcafed3c6aa9fdee38f3
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
f72c0489fa076f46a4b8f1f067a2d61d92d8b1e6b803abd1a7497197da9bdf23
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
cbaade5e87589c6fb562c9434649cf4097519e46df99f89d5f18169b1bdc623afbced20c9f2631110773d7c35e2751358669f23b7aef6949feb01b035468686e
|
package/Detox-ios-framework.tbz
CHANGED
|
Binary file
|
package/Detox-ios-src.tbz
CHANGED
|
Binary file
|
package/Detox-ios-xcuitest.tbz
CHANGED
|
Binary file
|
|
@@ -9,7 +9,9 @@ import com.facebook.react.animated.NativeAnimatedNodesManager
|
|
|
9
9
|
import com.facebook.react.bridge.ReactContext
|
|
10
10
|
import com.wix.detox.common.DetoxErrors
|
|
11
11
|
import com.wix.detox.common.DetoxLog.Companion.LOG_TAG
|
|
12
|
+
import com.wix.detox.reactnative.ReactNativeInfo
|
|
12
13
|
import com.wix.detox.reactnative.idlingresources.DetoxIdlingResource
|
|
14
|
+
import kotlin.reflect.KProperty1
|
|
13
15
|
import kotlin.reflect.full.memberFunctions
|
|
14
16
|
import kotlin.reflect.full.memberProperties
|
|
15
17
|
import kotlin.reflect.jvm.isAccessible
|
|
@@ -72,15 +74,19 @@ private class AnimatedModuleFacade(private val animatedModule: NativeAnimatedMod
|
|
|
72
74
|
private val nodesManager: NativeAnimatedNodesManager
|
|
73
75
|
|
|
74
76
|
init {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
+
val operationsQueueName = if (ReactNativeInfo.rnVersion().minor > 79) "operations" else "mOperations"
|
|
78
|
+
val preOperationsQueueName = if (ReactNativeInfo.rnVersion().minor > 79) "preOperations" else "mPreOperations"
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
operationsQueue = (NativeAnimatedModule::class.memberProperties.find { it.name == operationsQueueName } ?:
|
|
82
|
+
throw DetoxErrors.DetoxIllegalStateException("$operationsQueueName property cannot be accessed")).let {
|
|
77
83
|
|
|
78
84
|
it.isAccessible = true
|
|
79
85
|
OperationsQueueReflected(it.get(animatedModule) as Any)
|
|
80
86
|
}
|
|
81
87
|
|
|
82
|
-
preOperationsQueue = (NativeAnimatedModule::class.memberProperties.find { it.name ==
|
|
83
|
-
throw DetoxErrors.DetoxIllegalStateException("
|
|
88
|
+
preOperationsQueue = (NativeAnimatedModule::class.memberProperties.find { it.name == preOperationsQueueName } ?:
|
|
89
|
+
throw DetoxErrors.DetoxIllegalStateException("$preOperationsQueueName property cannot be accessed")).let {
|
|
84
90
|
|
|
85
91
|
it.isAccessible = true
|
|
86
92
|
OperationsQueueReflected(it.get(animatedModule) as Any)
|
|
@@ -103,10 +109,21 @@ private class AnimatedModuleFacade(private val animatedModule: NativeAnimatedMod
|
|
|
103
109
|
|
|
104
110
|
class OperationsQueueReflected(private val operationsQueue: Any) {
|
|
105
111
|
fun isEmpty(): Boolean {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
112
|
+
// Try method first (works in release builds)
|
|
113
|
+
val isEmptyMethod = operationsQueue::class.memberFunctions.find { it.name == "isEmpty" }
|
|
114
|
+
if (isEmptyMethod != null) {
|
|
115
|
+
isEmptyMethod.isAccessible = true
|
|
116
|
+
return isEmptyMethod.call(operationsQueue) as Boolean
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// Fallback to property (works in debug builds for RN 0.80+)
|
|
120
|
+
val isEmptyProperty = operationsQueue::class.memberProperties.find { it.name == "isEmpty" }
|
|
121
|
+
if (isEmptyProperty != null) {
|
|
122
|
+
isEmptyProperty.isAccessible = true
|
|
123
|
+
@Suppress("UNCHECKED_CAST")
|
|
124
|
+
return (isEmptyProperty as KProperty1<Any, *>).get(operationsQueue) as Boolean
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
throw DetoxErrors.DetoxIllegalStateException("isEmpty method/property cannot be reached")
|
|
111
128
|
}
|
|
112
129
|
}
|
|
@@ -3,6 +3,7 @@ package com.wix.detox.reactnative.idlingresources.network
|
|
|
3
3
|
import android.util.Log
|
|
4
4
|
import com.facebook.react.bridge.ReactContext
|
|
5
5
|
import com.facebook.react.modules.network.NetworkingModule
|
|
6
|
+
import com.wix.detox.reactnative.ReactNativeInfo
|
|
6
7
|
import okhttp3.OkHttpClient
|
|
7
8
|
import org.joor.Reflect
|
|
8
9
|
import org.joor.ReflectException
|
|
@@ -10,13 +11,20 @@ import org.joor.ReflectException
|
|
|
10
11
|
|
|
11
12
|
private const val LOG_TAG = "RNNetworkingModuleRefl"
|
|
12
13
|
|
|
13
|
-
private const val
|
|
14
|
+
private const val FIELD_OKHTTP_CLIENT_PRE80 = "mClient"
|
|
15
|
+
private const val FIELD_OKHTTP_CLIENT = "client"
|
|
14
16
|
|
|
15
17
|
internal class NetworkingModuleReflected(private val reactContext: ReactContext) {
|
|
16
18
|
fun getHttpClient(): OkHttpClient? {
|
|
17
19
|
val networkNativeModule = reactContext.getNativeModule(NetworkingModule::class.java)
|
|
18
20
|
try {
|
|
19
|
-
|
|
21
|
+
val fieldName = if ( ReactNativeInfo.rnVersion().minor > 79) {
|
|
22
|
+
FIELD_OKHTTP_CLIENT
|
|
23
|
+
} else {
|
|
24
|
+
FIELD_OKHTTP_CLIENT_PRE80
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return Reflect.on(networkNativeModule).field(fieldName).get()
|
|
20
28
|
} catch (e: ReflectException) {
|
|
21
29
|
Log.e(LOG_TAG, "Can't set up Networking Module listener", e)
|
|
22
30
|
return null
|
|
@@ -2,6 +2,7 @@ package com.wix.detox.reactnative.idlingresources.timers
|
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.ReactContext
|
|
4
4
|
import com.facebook.react.modules.core.JavaTimerManager
|
|
5
|
+
import com.wix.detox.reactnative.ReactNativeInfo
|
|
5
6
|
import org.joor.Reflect
|
|
6
7
|
import kotlin.reflect.full.declaredFunctions
|
|
7
8
|
import kotlin.reflect.jvm.isAccessible
|
|
@@ -19,8 +20,19 @@ object JavaTimersReflected {
|
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
private fun getTimersManager(reactContext: ReactContext): JavaTimerManager {
|
|
22
|
-
val
|
|
23
|
+
val reactHostFieldName = if (ReactNativeInfo.rnVersion().minor > 79) {
|
|
24
|
+
"reactHost"
|
|
25
|
+
} else {
|
|
26
|
+
"mReactHost"
|
|
27
|
+
}
|
|
28
|
+
val javaTimerManagerFieldName = if (ReactNativeInfo.rnVersion().minor > 79) {
|
|
29
|
+
"javaTimerManager"
|
|
30
|
+
} else {
|
|
31
|
+
"mJavaTimerManager"
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
val reactHost = Reflect.on(reactContext).field(reactHostFieldName).get<Any>()
|
|
23
35
|
val reactInstance = Reflect.on(reactHost).field("mReactInstance").get<Any>()
|
|
24
|
-
return Reflect.on(reactInstance).field(
|
|
36
|
+
return Reflect.on(reactInstance).field(javaTimerManagerFieldName).get() as JavaTimerManager
|
|
25
37
|
}
|
|
26
38
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
distributionBase=GRADLE_USER_HOME
|
|
2
2
|
distributionPath=wrapper/dists
|
|
3
|
-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.
|
|
3
|
+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip
|
|
4
4
|
networkTimeout=10000
|
|
5
5
|
validateDistributionUrl=true
|
|
6
6
|
zipStoreBase=GRADLE_USER_HOME
|
package/android/rninfo.gradle
CHANGED
|
@@ -42,4 +42,9 @@ ext.rnInfo = [
|
|
|
42
42
|
isRN73OrHigher: rnMajorVer >= 73,
|
|
43
43
|
isRN74OrHigher: rnMajorVer >= 74,
|
|
44
44
|
isRN75OrHigher: rnMajorVer >= 75,
|
|
45
|
+
isRN76OrHigher: rnMajorVer >= 76,
|
|
46
|
+
isRN77OrHigher: rnMajorVer >= 77,
|
|
47
|
+
isRN78OrHigher: rnMajorVer >= 78,
|
|
48
|
+
isRN79OrHigher: rnMajorVer >= 79,
|
|
49
|
+
isRN80OrHigher: rnMajorVer >= 80,
|
|
45
50
|
]
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "detox",
|
|
3
3
|
"description": "E2E tests and automation for mobile",
|
|
4
|
-
"version": "20.
|
|
4
|
+
"version": "20.43.0",
|
|
5
5
|
"bin": {
|
|
6
6
|
"detox": "local-cli/cli.js"
|
|
7
7
|
},
|
|
@@ -34,13 +34,13 @@
|
|
|
34
34
|
"postinstall": "node scripts/postinstall.js"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@react-native-community/cli": "
|
|
38
|
-
"@react-native-community/cli-platform-android": "
|
|
39
|
-
"@react-native-community/cli-platform-ios": "
|
|
40
|
-
"@react-native/babel-preset": "0.
|
|
41
|
-
"@react-native/eslint-config": "0.
|
|
42
|
-
"@react-native/metro-config": "0.
|
|
43
|
-
"@react-native/typescript-config": "0.
|
|
37
|
+
"@react-native-community/cli": "19.1.1",
|
|
38
|
+
"@react-native-community/cli-platform-android": "19.1.1",
|
|
39
|
+
"@react-native-community/cli-platform-ios": "19.1.1",
|
|
40
|
+
"@react-native/babel-preset": "0.80.2",
|
|
41
|
+
"@react-native/eslint-config": "0.80.2",
|
|
42
|
+
"@react-native/metro-config": "0.80.2",
|
|
43
|
+
"@react-native/typescript-config": "0.80.2",
|
|
44
44
|
"@tsconfig/react-native": "^3.0.0",
|
|
45
45
|
"@types/bunyan": "^1.8.8",
|
|
46
46
|
"@types/child-process-promise": "^2.2.1",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"jest-allure2-reporter": "^2.2.6",
|
|
63
63
|
"metro-react-native-babel-preset": "0.76.8",
|
|
64
64
|
"prettier": "^3.1.1",
|
|
65
|
-
"react-native": "0.
|
|
65
|
+
"react-native": "0.80.2",
|
|
66
66
|
"react-native-codegen": "^0.0.8",
|
|
67
67
|
"typescript": "~5.3.3",
|
|
68
68
|
"wtfnode": "^0.9.1"
|
|
@@ -120,5 +120,5 @@
|
|
|
120
120
|
"browserslist": [
|
|
121
121
|
"node 14"
|
|
122
122
|
],
|
|
123
|
-
"gitHead": "
|
|
123
|
+
"gitHead": "28c2bb5d49a78a0b7103ecd15a8d6a148b1f7d3d"
|
|
124
124
|
}
|
package/scripts/updateGradle.js
CHANGED
|
@@ -6,6 +6,11 @@ const rnMinor = require('../src/utils/rn-consts/rn-consts').rnVersion.minor;
|
|
|
6
6
|
function getGradleVersionByRNVersion() {
|
|
7
7
|
switch (rnMinor) {
|
|
8
8
|
default:
|
|
9
|
+
return '8.14.1';
|
|
10
|
+
case '79':
|
|
11
|
+
case '78':
|
|
12
|
+
case '77':
|
|
13
|
+
case '76':
|
|
9
14
|
return '8.10.2';
|
|
10
15
|
case '75':
|
|
11
16
|
return '8.8';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1887d4991e0ed4ee1f60fe19496a9cfa
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
697906ce37fa13e262c3cfdaba6a6e23af05123d
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
81b7cec264869ffb4a51c3f49d0458ea42f02a8921afeeef9fba6d13f81f76c6
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2345745b36a549ab7230b6cbc55cad2a2a469720a8622a2592669c3a25be55c8a9d0bb7b36123c68e91bc37c6df04f477849018c034e0dd956d1d5e9cb2a1cfb
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
69c3525aa2e433c05bee1f04c2724502
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
5dac9bbd10339143f33f66269d560c940dabde5a
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
04cb33cabcf007a0767a85ea4b9322efe008d9ffb2e4a5636f2eb6513fcc81d3
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
aec098beccb4827b287051cfd924ba72a4b8ad6a5d3cf3c5f645dea50ba704f683a2dbe5e724a94801189aded1fe494a69cef0b31f9128dde89ee1ec2fc92e2d
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
c194caa27e6cabf5bc5bbede5c1e22ad
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
d844bb306d465880c159bb56238879e2395cee9a
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
6989731d5223c5a9f236e3911eaef2e85fbca229eb68bfbec44e31b3529ae70d
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
13500f06af3b22637f0469dbce8b92b7da859ec3b08a28b8874be4ee1116599b97533cc7307a23beebe6c0508e57038ba2f6f195d69a09a994a599071bdce886
|