detox 20.41.0 → 20.41.2
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.41.0/detox-20.41.0-sources.jar → 20.41.2/detox-20.41.2-sources.jar} +0 -0
- package/Detox-android/com/wix/detox/20.41.2/detox-20.41.2-sources.jar.md5 +1 -0
- package/Detox-android/com/wix/detox/20.41.2/detox-20.41.2-sources.jar.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.41.2/detox-20.41.2-sources.jar.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.41.2/detox-20.41.2-sources.jar.sha512 +1 -0
- package/Detox-android/com/wix/detox/{20.41.0/detox-20.41.0.aar → 20.41.2/detox-20.41.2.aar} +0 -0
- package/Detox-android/com/wix/detox/20.41.2/detox-20.41.2.aar.md5 +1 -0
- package/Detox-android/com/wix/detox/20.41.2/detox-20.41.2.aar.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.41.2/detox-20.41.2.aar.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.41.2/detox-20.41.2.aar.sha512 +1 -0
- package/Detox-android/com/wix/detox/{20.41.0/detox-20.41.0.pom → 20.41.2/detox-20.41.2.pom} +1 -1
- package/Detox-android/com/wix/detox/20.41.2/detox-20.41.2.pom.md5 +1 -0
- package/Detox-android/com/wix/detox/20.41.2/detox-20.41.2.pom.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.41.2/detox-20.41.2.pom.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.41.2/detox-20.41.2.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 +74 -26
- package/android/detox/src/full/java/com/wix/detox/reactnative/idlingresources/uimodule/fabric/FabricUIManagerIdlingResources.kt +1 -1
- package/package.json +2 -2
- package/Detox-android/com/wix/detox/20.41.0/detox-20.41.0-sources.jar.md5 +0 -1
- package/Detox-android/com/wix/detox/20.41.0/detox-20.41.0-sources.jar.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.41.0/detox-20.41.0-sources.jar.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.41.0/detox-20.41.0-sources.jar.sha512 +0 -1
- package/Detox-android/com/wix/detox/20.41.0/detox-20.41.0.aar.md5 +0 -1
- package/Detox-android/com/wix/detox/20.41.0/detox-20.41.0.aar.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.41.0/detox-20.41.0.aar.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.41.0/detox-20.41.0.aar.sha512 +0 -1
- package/Detox-android/com/wix/detox/20.41.0/detox-20.41.0.pom.md5 +0 -1
- package/Detox-android/com/wix/detox/20.41.0/detox-20.41.0.pom.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.41.0/detox-20.41.0.pom.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.41.0/detox-20.41.0.pom.sha512 +0 -1
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
78e6a14fb3535afbf9e26a44532bad26
|
@@ -0,0 +1 @@
|
|
1
|
+
6608ad7ef3136c6a6a96d8c0196c015266fad90b
|
@@ -0,0 +1 @@
|
|
1
|
+
8cad5bb8dcadcb1489d21e9eb02b4e404ba142611cac6c9e0b5b870eabd02644
|
@@ -0,0 +1 @@
|
|
1
|
+
420217e7885b9b62f1345d4a75fa684508898a054f188e60816f6cdbfc95bc8ca4af71d09f60d81246fb723f551b52b211765c59f9edc10394b508387f1293d1
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
92af4eb56025da6478dcf052cc974ed9
|
@@ -0,0 +1 @@
|
|
1
|
+
caa2f11c005b65f021c582cf67539513db45db0c
|
@@ -0,0 +1 @@
|
|
1
|
+
69db0de12353910d42ff6cfb919ff43ddfb3225f762463bc326f31741f20c118
|
@@ -0,0 +1 @@
|
|
1
|
+
aa19d01f92ff6aa9724f8eba5d9b705e0d549105a08f11b643e5fcd530d292ee9be73a354a447d2d1377ed80ebe07cf7da405da06c6a382ea1127b69e105b543
|
@@ -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.41.
|
6
|
+
<version>20.41.2</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
|
+
03211aed18c8bbd28357bdbbc15b17ed
|
@@ -0,0 +1 @@
|
|
1
|
+
3d506946f8dd584cd3f5f849f81ce8badba26ff1
|
@@ -0,0 +1 @@
|
|
1
|
+
2b73ef91d19c21879c9f7562235484c19750e46011ba430b2255a50a6c23bc90
|
@@ -0,0 +1 @@
|
|
1
|
+
3cf68662b57730aa809c02a55762284adaae491b7ff7b96781630e7e2829c530d956f099d12bd5a27d45a72d995befd5b127c4d966ddfbd322dcf43715316d3d
|
@@ -3,11 +3,11 @@
|
|
3
3
|
<groupId>com.wix</groupId>
|
4
4
|
<artifactId>detox</artifactId>
|
5
5
|
<versioning>
|
6
|
-
<latest>20.41.
|
7
|
-
<release>20.41.
|
6
|
+
<latest>20.41.2</latest>
|
7
|
+
<release>20.41.2</release>
|
8
8
|
<versions>
|
9
|
-
<version>20.41.
|
9
|
+
<version>20.41.2</version>
|
10
10
|
</versions>
|
11
|
-
<lastUpdated>
|
11
|
+
<lastUpdated>20250916084648</lastUpdated>
|
12
12
|
</versioning>
|
13
13
|
</metadata>
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
78b2664291287ff2e98abc7833e1ff32
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
3815f5ec320d3eb9cf95c90163e24c91f5120f41
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
0ba98253bc44988f584d1c5dc53ef6da8485af9b8a1b208494bca124883669cd
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
6b8f60519bdf9dd63e87f1493dd74c0489d23bec33784921069c0ead127ba66f546d1cc0ed2fa75c818f7f2f28b2a464242e20879ed12f130fdc3de42d442cc5
|
package/Detox-ios-framework.tbz
CHANGED
Binary file
|
package/Detox-ios-src.tbz
CHANGED
Binary file
|
package/Detox-ios-xcuitest.tbz
CHANGED
Binary file
|
@@ -2,44 +2,36 @@ package com.wix.detox.reactnative.idlingresources.animations
|
|
2
2
|
|
3
3
|
import android.util.Log
|
4
4
|
import android.view.Choreographer
|
5
|
+
import androidx.annotation.UiThread
|
5
6
|
import androidx.test.espresso.IdlingResource.ResourceCallback
|
6
7
|
import com.facebook.react.animated.NativeAnimatedModule
|
8
|
+
import com.facebook.react.animated.NativeAnimatedNodesManager
|
7
9
|
import com.facebook.react.bridge.ReactContext
|
10
|
+
import com.wix.detox.common.DetoxErrors
|
11
|
+
import com.wix.detox.common.DetoxLog.Companion.LOG_TAG
|
8
12
|
import com.wix.detox.reactnative.idlingresources.DetoxIdlingResource
|
13
|
+
import kotlin.reflect.full.memberFunctions
|
14
|
+
import kotlin.reflect.full.memberProperties
|
15
|
+
import kotlin.reflect.jvm.isAccessible
|
9
16
|
|
10
|
-
private const val LOG_TAG = "Detox"
|
11
|
-
|
12
|
-
|
13
|
-
/**
|
14
|
-
* Created by simonracz on 25/08/2017.
|
15
|
-
*/
|
16
|
-
/**
|
17
|
-
*
|
18
|
-
* Espresso IdlingResource for React Native's Animated Module.
|
19
|
-
*
|
20
|
-
*
|
21
|
-
* Hooks up to React Native internals to monitor the state of the animations.
|
22
|
-
*
|
23
|
-
*/
|
24
17
|
class AnimatedModuleIdlingResource(private val reactContext: ReactContext) : DetoxIdlingResource(),
|
25
18
|
Choreographer.FrameCallback {
|
26
19
|
|
27
|
-
|
28
|
-
|
29
|
-
override fun getDebugName(): String {
|
30
|
-
return "ui"
|
31
|
-
}
|
20
|
+
private var animatedModule: AnimatedModuleFacade? = null
|
32
21
|
|
33
|
-
override fun
|
34
|
-
|
35
|
-
|
22
|
+
override fun getName(): String = AnimatedModuleIdlingResource::class.java.name
|
23
|
+
override fun getDebugName() = "ui"
|
24
|
+
override fun getBusyHint(): Map<String, Any> = mapOf("reason" to "Animations running on screen")
|
36
25
|
|
37
26
|
override fun checkIdle(): Boolean {
|
38
|
-
val animatedModule =
|
39
|
-
|
27
|
+
val animatedModule = getAnimatedModule()
|
28
|
+
if (animatedModule == null) {
|
29
|
+
Log.w(LOG_TAG, "AnimatedModule is idle because the native-module is not available")
|
30
|
+
return false
|
31
|
+
}
|
40
32
|
|
41
|
-
if (
|
42
|
-
|
33
|
+
if (animatedModule.hasQueuedAnimations() ||
|
34
|
+
animatedModule.hasActiveAnimations()) {
|
43
35
|
Choreographer.getInstance().postFrameCallback(this)
|
44
36
|
return false
|
45
37
|
}
|
@@ -61,4 +53,60 @@ class AnimatedModuleIdlingResource(private val reactContext: ReactContext) : Det
|
|
61
53
|
override fun doFrame(frameTimeNanos: Long) {
|
62
54
|
isIdleNow
|
63
55
|
}
|
56
|
+
|
57
|
+
private fun getAnimatedModule(): AnimatedModuleFacade? =
|
58
|
+
if (animatedModule != null) {
|
59
|
+
animatedModule
|
60
|
+
} else {
|
61
|
+
reactContext.getNativeModule(NativeAnimatedModule::class.java)?.let {
|
62
|
+
AnimatedModuleFacade(it).also { nativeModule ->
|
63
|
+
animatedModule = nativeModule
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
69
|
+
private class AnimatedModuleFacade(private val animatedModule: NativeAnimatedModule) {
|
70
|
+
private val operationsQueue: OperationsQueueReflected
|
71
|
+
private val preOperationsQueue: OperationsQueueReflected
|
72
|
+
private val nodesManager: NativeAnimatedNodesManager
|
73
|
+
|
74
|
+
init {
|
75
|
+
operationsQueue = (NativeAnimatedModule::class.memberProperties.find { it.name == "mOperations" } ?:
|
76
|
+
throw DetoxErrors.DetoxIllegalStateException("mOperations property cannot be accessed")).let {
|
77
|
+
|
78
|
+
it.isAccessible = true
|
79
|
+
OperationsQueueReflected(it.get(animatedModule) as Any)
|
80
|
+
}
|
81
|
+
|
82
|
+
preOperationsQueue = (NativeAnimatedModule::class.memberProperties.find { it.name == "mPreOperations" } ?:
|
83
|
+
throw DetoxErrors.DetoxIllegalStateException("mPreOperations property cannot be accessed")).let {
|
84
|
+
|
85
|
+
it.isAccessible = true
|
86
|
+
OperationsQueueReflected(it.get(animatedModule) as Any)
|
87
|
+
}
|
88
|
+
|
89
|
+
nodesManager = animatedModule.nodesManager ?:
|
90
|
+
throw DetoxErrors.DetoxIllegalStateException("AnimatedModule exists but nodesManager is null")
|
91
|
+
}
|
92
|
+
|
93
|
+
@UiThread
|
94
|
+
fun hasQueuedAnimations(): Boolean =
|
95
|
+
!preOperationsQueue.isEmpty() ||
|
96
|
+
!operationsQueue.isEmpty()
|
97
|
+
|
98
|
+
@UiThread
|
99
|
+
fun hasActiveAnimations(): Boolean {
|
100
|
+
return nodesManager.hasActiveAnimations()
|
101
|
+
}
|
102
|
+
}
|
103
|
+
|
104
|
+
class OperationsQueueReflected(private val operationsQueue: Any) {
|
105
|
+
fun isEmpty(): Boolean {
|
106
|
+
val isEmptyMethod = operationsQueue::class.memberFunctions.find { it.name == "isEmpty" } ?:
|
107
|
+
throw DetoxErrors.DetoxIllegalStateException("isEmpty method cannot be reached")
|
108
|
+
|
109
|
+
isEmptyMethod.isAccessible = true
|
110
|
+
return isEmptyMethod.call(operationsQueue) as Boolean
|
111
|
+
}
|
64
112
|
}
|
@@ -42,7 +42,7 @@ class FabricUIManagerIdlingResources(
|
|
42
42
|
return mapOf("mount_items" to getMountItemsSize(), "view_command_mount_items" to getViewCommandMountItemsSize())
|
43
43
|
}
|
44
44
|
|
45
|
-
override fun getName() = FabricUIManagerIdlingResources::class.java.name
|
45
|
+
override fun getName(): String = FabricUIManagerIdlingResources::class.java.name
|
46
46
|
|
47
47
|
override fun doFrame(frameTimeNanos: Long) {
|
48
48
|
isIdleNow()
|
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.41.
|
4
|
+
"version": "20.41.2",
|
5
5
|
"bin": {
|
6
6
|
"detox": "local-cli/cli.js"
|
7
7
|
},
|
@@ -120,5 +120,5 @@
|
|
120
120
|
"browserslist": [
|
121
121
|
"node 14"
|
122
122
|
],
|
123
|
-
"gitHead": "
|
123
|
+
"gitHead": "69e708aaa8c8dac999c8d442751865df66723cb9"
|
124
124
|
}
|
@@ -1 +0,0 @@
|
|
1
|
-
0421fb9ccaf600eff0cdc6a5a5997d86
|
@@ -1 +0,0 @@
|
|
1
|
-
0bc6482f127ffc1c35951c2d5ee704b66fec7434
|
@@ -1 +0,0 @@
|
|
1
|
-
46606e13d52016eb82b7e233be956bfab0795ddd3072a4006c72d9d62150b8a8
|
@@ -1 +0,0 @@
|
|
1
|
-
694c36cf11c80f58338beeaf42b35baf0b9c4653a4b968d8436f3b8562346214c81aa6693c50e09e9ebd70b683b3b0ae5feb9477fa368791265f3f5ddfc3b1e8
|
@@ -1 +0,0 @@
|
|
1
|
-
4bb098d649a4fdfa8da731a13328f37c
|
@@ -1 +0,0 @@
|
|
1
|
-
7eb7b72ea93111298c4bd1c7fc0dcf37af928f2b
|
@@ -1 +0,0 @@
|
|
1
|
-
b478899eb20e565464f25f111b670f8e4373a63ba61745ad6bb5107c30b9911e
|
@@ -1 +0,0 @@
|
|
1
|
-
089dfef507028175839a71599ed64d6c938c59336a41a0fa59d5069b1782eb33ad6d4ba1b5e0efaff3ce7d5f13dfc07646a59105df0df04e9bb8b63094d269e1
|
@@ -1 +0,0 @@
|
|
1
|
-
9a33c24613158b5d7b5510cea7e84d8f
|
@@ -1 +0,0 @@
|
|
1
|
-
c6d44274a9a088ece488d89ffd58cbf02cd46ebd
|
@@ -1 +0,0 @@
|
|
1
|
-
53b90688d5ad8e31fb5150d83641dc639cdcba16c2278acf02a14853c222fd1a
|
@@ -1 +0,0 @@
|
|
1
|
-
eca90b6c02a763efbfd441e73dc6465f01e46a036e82bb97cf86960c092d76939cabff0a3ac9d497d34cee2eb086b2069f7be456cc66d435304d201feebac390
|