detox 20.14.0-prerelease.1 → 20.14.0-prerelease.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. package/Detox-android/com/wix/detox/{20.14.0-prerelease.1/detox-20.14.0-prerelease.1-javadoc.jar → 20.14.0-prerelease.2/detox-20.14.0-prerelease.2-javadoc.jar} +0 -0
  2. package/Detox-android/com/wix/detox/20.14.0-prerelease.2/detox-20.14.0-prerelease.2-javadoc.jar.md5 +1 -0
  3. package/Detox-android/com/wix/detox/20.14.0-prerelease.2/detox-20.14.0-prerelease.2-javadoc.jar.sha1 +1 -0
  4. package/Detox-android/com/wix/detox/20.14.0-prerelease.2/detox-20.14.0-prerelease.2-javadoc.jar.sha256 +1 -0
  5. package/Detox-android/com/wix/detox/20.14.0-prerelease.2/detox-20.14.0-prerelease.2-javadoc.jar.sha512 +1 -0
  6. package/Detox-android/com/wix/detox/{20.14.0-prerelease.1/detox-20.14.0-prerelease.1-sources.jar → 20.14.0-prerelease.2/detox-20.14.0-prerelease.2-sources.jar} +0 -0
  7. package/Detox-android/com/wix/detox/20.14.0-prerelease.2/detox-20.14.0-prerelease.2-sources.jar.md5 +1 -0
  8. package/Detox-android/com/wix/detox/20.14.0-prerelease.2/detox-20.14.0-prerelease.2-sources.jar.sha1 +1 -0
  9. package/Detox-android/com/wix/detox/20.14.0-prerelease.2/detox-20.14.0-prerelease.2-sources.jar.sha256 +1 -0
  10. package/Detox-android/com/wix/detox/20.14.0-prerelease.2/detox-20.14.0-prerelease.2-sources.jar.sha512 +1 -0
  11. package/Detox-android/com/wix/detox/20.14.0-prerelease.2/detox-20.14.0-prerelease.2.aar +0 -0
  12. package/Detox-android/com/wix/detox/20.14.0-prerelease.2/detox-20.14.0-prerelease.2.aar.md5 +1 -0
  13. package/Detox-android/com/wix/detox/20.14.0-prerelease.2/detox-20.14.0-prerelease.2.aar.sha1 +1 -0
  14. package/Detox-android/com/wix/detox/20.14.0-prerelease.2/detox-20.14.0-prerelease.2.aar.sha256 +1 -0
  15. package/Detox-android/com/wix/detox/20.14.0-prerelease.2/detox-20.14.0-prerelease.2.aar.sha512 +1 -0
  16. package/Detox-android/com/wix/detox/{20.14.0-prerelease.1/detox-20.14.0-prerelease.1.pom → 20.14.0-prerelease.2/detox-20.14.0-prerelease.2.pom} +1 -1
  17. package/Detox-android/com/wix/detox/20.14.0-prerelease.2/detox-20.14.0-prerelease.2.pom.md5 +1 -0
  18. package/Detox-android/com/wix/detox/20.14.0-prerelease.2/detox-20.14.0-prerelease.2.pom.sha1 +1 -0
  19. package/Detox-android/com/wix/detox/20.14.0-prerelease.2/detox-20.14.0-prerelease.2.pom.sha256 +1 -0
  20. package/Detox-android/com/wix/detox/20.14.0-prerelease.2/detox-20.14.0-prerelease.2.pom.sha512 +1 -0
  21. package/Detox-android/com/wix/detox/maven-metadata.xml +4 -4
  22. package/Detox-android/com/wix/detox/maven-metadata.xml.md5 +1 -1
  23. package/Detox-android/com/wix/detox/maven-metadata.xml.sha1 +1 -1
  24. package/Detox-android/com/wix/detox/maven-metadata.xml.sha256 +1 -1
  25. package/Detox-android/com/wix/detox/maven-metadata.xml.sha512 +1 -1
  26. package/Detox-ios-src.tbz +0 -0
  27. package/Detox-ios.tbz +0 -0
  28. package/android/detox/src/full/java/com/wix/detox/DetoxMain.kt +30 -37
  29. package/android/detox/src/full/java/com/wix/detox/adapters/server/DetoxActionsDispatcher.kt +12 -6
  30. package/package.json +2 -2
  31. package/Detox-android/com/wix/detox/20.14.0-prerelease.1/detox-20.14.0-prerelease.1-javadoc.jar.md5 +0 -1
  32. package/Detox-android/com/wix/detox/20.14.0-prerelease.1/detox-20.14.0-prerelease.1-javadoc.jar.sha1 +0 -1
  33. package/Detox-android/com/wix/detox/20.14.0-prerelease.1/detox-20.14.0-prerelease.1-javadoc.jar.sha256 +0 -1
  34. package/Detox-android/com/wix/detox/20.14.0-prerelease.1/detox-20.14.0-prerelease.1-javadoc.jar.sha512 +0 -1
  35. package/Detox-android/com/wix/detox/20.14.0-prerelease.1/detox-20.14.0-prerelease.1-sources.jar.md5 +0 -1
  36. package/Detox-android/com/wix/detox/20.14.0-prerelease.1/detox-20.14.0-prerelease.1-sources.jar.sha1 +0 -1
  37. package/Detox-android/com/wix/detox/20.14.0-prerelease.1/detox-20.14.0-prerelease.1-sources.jar.sha256 +0 -1
  38. package/Detox-android/com/wix/detox/20.14.0-prerelease.1/detox-20.14.0-prerelease.1-sources.jar.sha512 +0 -1
  39. package/Detox-android/com/wix/detox/20.14.0-prerelease.1/detox-20.14.0-prerelease.1.aar +0 -0
  40. package/Detox-android/com/wix/detox/20.14.0-prerelease.1/detox-20.14.0-prerelease.1.aar.md5 +0 -1
  41. package/Detox-android/com/wix/detox/20.14.0-prerelease.1/detox-20.14.0-prerelease.1.aar.sha1 +0 -1
  42. package/Detox-android/com/wix/detox/20.14.0-prerelease.1/detox-20.14.0-prerelease.1.aar.sha256 +0 -1
  43. package/Detox-android/com/wix/detox/20.14.0-prerelease.1/detox-20.14.0-prerelease.1.aar.sha512 +0 -1
  44. package/Detox-android/com/wix/detox/20.14.0-prerelease.1/detox-20.14.0-prerelease.1.pom.md5 +0 -1
  45. package/Detox-android/com/wix/detox/20.14.0-prerelease.1/detox-20.14.0-prerelease.1.pom.sha1 +0 -1
  46. package/Detox-android/com/wix/detox/20.14.0-prerelease.1/detox-20.14.0-prerelease.1.pom.sha256 +0 -1
  47. package/Detox-android/com/wix/detox/20.14.0-prerelease.1/detox-20.14.0-prerelease.1.pom.sha512 +0 -1
@@ -0,0 +1 @@
1
+ e0a1d1fbab61c5893fdb46e2235e1dc6965bd844
@@ -0,0 +1 @@
1
+ 6d2d413c447f14ec84981d3da97088eb6ead4abeeffab793c0e3807ba0ea0a20
@@ -0,0 +1 @@
1
+ f3d84c1967a303c3c707f7078767ef0296c9f7371f8357040f8fa42489e46686f79820c4da968a56ed5c0d6061595bc779960b8ceaf442025eb84781fd23a542
@@ -0,0 +1 @@
1
+ 66be2d4b4d91e76a8909fc7545fcf13a60eba43e
@@ -0,0 +1 @@
1
+ 13dea4a5f63caef936464c15a71159cde4bc2b0c80341428c3316e61bdff8acb
@@ -0,0 +1 @@
1
+ ef3ae29d6f7e051f506fd883f538bda1c818b2024e79cd06874a8dc315f136bfe64f9376b1dab7fc0cc95dda74d3fd69aab4788d87b6526793e85ee081b8018d
@@ -0,0 +1 @@
1
+ 8d86651a5283de3c9553a1c45ae34def
@@ -0,0 +1 @@
1
+ ee568f1ad8cdbb5d491fa566632d846fb9db0a80
@@ -0,0 +1 @@
1
+ 39db53cfe1ef966fb18c2dc4f30c56f1e6d9b63c393f114f63d51e9848bfc28a
@@ -0,0 +1 @@
1
+ 160c2f2c9d386372d094eb9c41b97007e61811f642d794298630f6b4af6db906f75d34da02afe86febcb2fe06baf32e3a9f5d68e018abab1299ca025974b1503
@@ -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.14.0-prerelease.1</version>
6
+ <version>20.14.0-prerelease.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
+ e973e8bfa03ed352cbbd3635a81a9e79
@@ -0,0 +1 @@
1
+ 5e0a40ff9b9798ca9e76525ada5bc3199f6c2517
@@ -0,0 +1 @@
1
+ 2156c5da6b37fc3bce8c585df1b1edba48f4794f00d5736a9055c1f425e5d60f
@@ -0,0 +1 @@
1
+ 9162d09b7e867b0ce6a1ebdfba18172824c29c7e7921dfcd0721b22f0549e115afef385167db7f7e443c80db2fb08066194aacb6c497774d1d79720592fd3f51
@@ -3,11 +3,11 @@
3
3
  <groupId>com.wix</groupId>
4
4
  <artifactId>detox</artifactId>
5
5
  <versioning>
6
- <latest>20.14.0-prerelease.1</latest>
7
- <release>20.14.0-prerelease.1</release>
6
+ <latest>20.14.0-prerelease.2</latest>
7
+ <release>20.14.0-prerelease.2</release>
8
8
  <versions>
9
- <version>20.14.0-prerelease.1</version>
9
+ <version>20.14.0-prerelease.2</version>
10
10
  </versions>
11
- <lastUpdated>20231207132752</lastUpdated>
11
+ <lastUpdated>20231210110218</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- a5fbdb5f4cfe92e4baf46b825a864c91
1
+ 5eb089354bf7e6365077c660d176d63c
@@ -1 +1 @@
1
- fdfcfe46dd0c8cd54f89a761002026c0cd8190b2
1
+ 1dc810e178b23e373e4891b93830741d37f1df15
@@ -1 +1 @@
1
- 941e726a6f918bf8a8f7b7b31f1c26eb782454fe94637558a7db2240c4069873
1
+ 6346b5dc9a255df56aea84bb619de85ebb65ee1982d0e8759c3be02fe6460f02
@@ -1 +1 @@
1
- aa7ce9a334943c2654001478df332f4ae943aa91c7d583870726a72f71c80163ec30e62c6c476ee7f9dc82bba2954bba54dca6504f6d4835fb6f22bbcdc6c6e2
1
+ f86e5affbf923bef18101c744088e4fee87177ad0cf66bc72e9010bbab37ba9f9d1a99792e5031f76ca6d5c59029f7247ed380811eca80b523b519dd02d962cb
package/Detox-ios-src.tbz CHANGED
Binary file
package/Detox-ios.tbz CHANGED
Binary file
@@ -13,39 +13,39 @@ import java.util.concurrent.CountDownLatch
13
13
  private const val TERMINATION_ACTION = "_terminate"
14
14
 
15
15
  object DetoxMain {
16
- private val loginMonitor = CountDownLatch(1)
16
+ private val handshakeLock = CountDownLatch(1)
17
17
 
18
18
  @JvmStatic
19
19
  fun run(rnHostHolder: Context, activityLaunchHelper: ActivityLaunchHelper) {
20
20
  val detoxServerInfo = DetoxServerInfo()
21
21
  val testEngineFacade = TestEngineFacade()
22
22
  val actionsDispatcher = DetoxActionsDispatcher()
23
- val externalAdapter = DetoxServerAdapter(actionsDispatcher, detoxServerInfo, TERMINATION_ACTION)
23
+ val serverAdapter = DetoxServerAdapter(actionsDispatcher, detoxServerInfo, TERMINATION_ACTION)
24
24
 
25
- initActionHandlers(actionsDispatcher, externalAdapter, testEngineFacade, rnHostHolder)
26
- initCrashHandler(externalAdapter)
27
- initANRListener(externalAdapter)
25
+ initCrashHandler(serverAdapter)
26
+ initANRListener(serverAdapter)
28
27
  initEspresso()
29
28
  initReactNative()
30
29
 
31
- externalAdapter.connect()
30
+ setupActionHandlers(actionsDispatcher, serverAdapter, testEngineFacade, rnHostHolder)
31
+ serverAdapter.connect()
32
32
 
33
33
  launchActivityOnCue(rnHostHolder, activityLaunchHelper)
34
34
  actionsDispatcher.join()
35
35
  }
36
36
 
37
37
  /**
38
- * Launch the tested activity "on cue", meaning - right after a connection is established and the handshake
38
+ * Launch the tested activity "on cue", namely, right after a connection is established and the handshake
39
39
  * completes successfully.
40
40
  *
41
41
  * This has to be synchronized so that an `isReady` isn't handled *before* the activity is launched (albeit not fully
42
42
  * initialized - all native modules and everything) and a react context is available.
43
43
  *
44
44
  * As a better alternative, it would make sense to execute this as a simple action from within the actions
45
- * dispatcher (i.e. handler of `loginSuccess`), in which case, no inter-thread sync (latches) would be required
46
- * thanks to the usage of Handlers. However, for a reason we're not yet sure of, in this type of a solution,
47
- * errors / crashes would be reported not by instrumentation itself, but based on the `AppWillTerminateWithError`
48
- * message. For a reason we're not sure of yet, it is ignored by the test runner at this point.
45
+ * dispatcher (i.e. handler of `loginSuccess`), in which case, no inter-thread locking would be required
46
+ * thanks to the usage of Handlers. However, in this type of a solution, errors / crashes would be reported
47
+ * not by instrumentation itself, but based on the `AppWillTerminateWithError` message; In it's own, it is a good
48
+ * thing, but for a reason we're not sure of yet, it is ignored by the test runner at this point in the flow.
49
49
  */
50
50
  @Synchronized
51
51
  private fun launchActivityOnCue(rnHostHolder: Context, activityLaunchHelper: ActivityLaunchHelper) {
@@ -54,11 +54,11 @@ object DetoxMain {
54
54
  }
55
55
 
56
56
  private fun awaitHandshake() {
57
- loginMonitor.await()
57
+ handshakeLock.await()
58
58
  }
59
59
 
60
60
  private fun onLoginSuccess() {
61
- loginMonitor.countDown()
61
+ handshakeLock.countDown()
62
62
  }
63
63
 
64
64
  private fun doTeardown(serverAdapter: DetoxServerAdapter, actionsDispatcher: DetoxActionsDispatcher, testEngineFacade: TestEngineFacade) {
@@ -68,30 +68,28 @@ object DetoxMain {
68
68
  actionsDispatcher.teardown()
69
69
  }
70
70
 
71
- private fun initActionHandlers(actionsDispatcher: DetoxActionsDispatcher, serverAdapter: DetoxServerAdapter, testEngineFacade: TestEngineFacade, rnHostHolder: Context) {
72
- // Primary actions
73
- with(actionsDispatcher) {
74
- val readyHandler = ReadyActionHandler(serverAdapter, testEngineFacade)
75
- val rnReloadHandler = ReactNativeReloadActionHandler(rnHostHolder, serverAdapter, testEngineFacade)
76
-
77
- associateActionHandler("isReady") { params, messageId ->
78
- synchronized(this@DetoxMain) {
79
- readyHandler.handle(params, messageId)
80
- }
81
- }
82
- associateActionHandler("loginSuccess") { _, _ -> this@DetoxMain.onLoginSuccess() }
83
- associateActionHandler("reactNativeReload") { params, messageId ->
71
+ private fun setupActionHandlers(actionsDispatcher: DetoxActionsDispatcher, serverAdapter: DetoxServerAdapter, testEngineFacade: TestEngineFacade, rnHostHolder: Context) {
72
+ class SynchronizedActionHandler(private val actionHandler: DetoxActionHandler): DetoxActionHandler {
73
+ override fun handle(params: String, messageId: Long) {
84
74
  synchronized(this@DetoxMain) {
85
- rnReloadHandler.handle(params, messageId)
75
+ actionHandler.handle(params, messageId)
86
76
  }
87
77
  }
78
+ }
79
+
80
+ // Primary actions
81
+ with(actionsDispatcher) {
82
+ val readyHandler = SynchronizedActionHandler( ReadyActionHandler(serverAdapter, testEngineFacade) )
83
+ val rnReloadHandler = SynchronizedActionHandler( ReactNativeReloadActionHandler(rnHostHolder, serverAdapter, testEngineFacade) )
84
+
85
+ associateActionHandler("loginSuccess", ::onLoginSuccess)
86
+ associateActionHandler("isReady", readyHandler)
87
+ associateActionHandler("reactNativeReload", rnReloadHandler)
88
88
  associateActionHandler("invoke", InvokeActionHandler(MethodInvocation(), serverAdapter))
89
89
  associateActionHandler("cleanup", CleanupActionHandler(serverAdapter, testEngineFacade) {
90
90
  dispatchAction(TERMINATION_ACTION, "", 0)
91
91
  })
92
- associateActionHandler(TERMINATION_ACTION) { _, _ ->
93
- this@DetoxMain.doTeardown(serverAdapter, actionsDispatcher, testEngineFacade)
94
- }
92
+ associateActionHandler(TERMINATION_ACTION) { -> doTeardown(serverAdapter, actionsDispatcher, testEngineFacade) }
95
93
 
96
94
  if (DetoxInstrumentsManager.supports()) {
97
95
  val instrumentsManager = DetoxInstrumentsManager(rnHostHolder)
@@ -102,13 +100,8 @@ object DetoxMain {
102
100
 
103
101
  // Secondary actions
104
102
  with(actionsDispatcher) {
105
- val queryStatusHandler = QueryStatusActionHandler(serverAdapter, testEngineFacade)
106
- associateActionHandler("currentStatus", object: DetoxActionHandler {
107
- override fun handle(params: String, messageId: Long) =
108
- synchronized(this@DetoxMain) {
109
- queryStatusHandler.handle(params, messageId)
110
- }
111
- }, false)
103
+ val queryStatusHandler = SynchronizedActionHandler( QueryStatusActionHandler(serverAdapter, testEngineFacade) )
104
+ associateSecondaryActionHandler("currentStatus", queryStatusHandler)
112
105
  }
113
106
  }
114
107
 
@@ -11,17 +11,18 @@ class DetoxActionsDispatcher {
11
11
  private val primaryExec = ActionsExecutor("detox.primary")
12
12
  private val secondaryExec = ActionsExecutor("detox.secondary")
13
13
 
14
- fun associateActionHandler(type: String, actionHandler: DetoxActionHandler, isPrimary: Boolean = true) {
15
- val actionsExecutor = (if (isPrimary) primaryExec else secondaryExec)
16
- actionsExecutor.associateHandler(type, actionHandler)
17
- }
14
+ fun associateActionHandler(type: String, actionHandler: DetoxActionHandler) =
15
+ associateActionHandler(type, actionHandler, true)
18
16
 
19
- fun associateActionHandler(type: String, handlerFunc: (params: String, messageId: Long) -> Unit) {
17
+ fun associateActionHandler(type: String, handlerFunc: () -> Unit) {
20
18
  associateActionHandler(type, object: DetoxActionHandler {
21
- override fun handle(params: String, messageId: Long) = handlerFunc(params, messageId)
19
+ override fun handle(params: String, messageId: Long) = handlerFunc()
22
20
  })
23
21
  }
24
22
 
23
+ fun associateSecondaryActionHandler(type: String, actionHandler: DetoxActionHandler) =
24
+ associateActionHandler(type, actionHandler, false)
25
+
25
26
  fun dispatchAction(type: String, params: String, messageId: Long) {
26
27
  (primaryExec.executeAction(type, params, messageId) ||
27
28
  secondaryExec.executeAction(type, params, messageId))
@@ -39,6 +40,11 @@ class DetoxActionsDispatcher {
39
40
  primaryExec.join()
40
41
  secondaryExec.join()
41
42
  }
43
+
44
+ private fun associateActionHandler(type: String, actionHandler: DetoxActionHandler, isPrimary: Boolean = true) {
45
+ val actionsExecutor = (if (isPrimary) primaryExec else secondaryExec)
46
+ actionsExecutor.associateHandler(type, actionHandler)
47
+ }
42
48
  }
43
49
 
44
50
  private class ActionsExecutor(name: String) {
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.14.0-prerelease.1",
4
+ "version": "20.14.0-prerelease.2",
5
5
  "bin": {
6
6
  "detox": "local-cli/cli.js"
7
7
  },
@@ -109,5 +109,5 @@
109
109
  "browserslist": [
110
110
  "node 14"
111
111
  ],
112
- "gitHead": "9f0d8ffd8b670a6575e2f97f4e604f6ce767de73"
112
+ "gitHead": "1707cce5d1e9922af476f3a47d34e3abfa2f0615"
113
113
  }
@@ -1 +0,0 @@
1
- 101174d6efcc4c3d6345187ba36580c69a2a85cb
@@ -1 +0,0 @@
1
- d619749f1bd215f97a95125e7a6116a7726e2db9030f2b8f5ef0aad8f58882a4
@@ -1 +0,0 @@
1
- 997784e15a3f0ff43ad1d5071b8aa57ca91e78bd6acdae715113788f53c69d8c6cdcb992e71ef88eabaa88b47c430f05455c018a0a734113cb780dd3a8321a07
@@ -1 +0,0 @@
1
- 5d123db8609c50172f853c041d5e612de4702637
@@ -1 +0,0 @@
1
- 75b2298b573526569f309412704e734ec6001ba71dcf0881c90a4ebd64938a45
@@ -1 +0,0 @@
1
- f7e7ef9b6e16ee7b2a70fe67a96746ea7ac2e2cfc088265c31ba1bd9d4c94ca76a8c2d205ed19fa9138f3c9f23f452ea64b5c474afffba42ed687bd6c55b9b81
@@ -1 +0,0 @@
1
- b096766881e5d6242eaf8ee3977b93a6
@@ -1 +0,0 @@
1
- 1599f587830337398b9c239a20c69211254756b0
@@ -1 +0,0 @@
1
- d147079616a4b6739b14e99ad6ba8e3d082666a765afc2df81b87ecf9a004a86
@@ -1 +0,0 @@
1
- 51e2e0600ce32dea98d699033b50f42d21b8adc64821a6e2bb5e31b20e4cc20313c397bc143a9d70ea7afbbb065618a8bdcec1856b9ea447c6a81737b9edf6dc
@@ -1 +0,0 @@
1
- f73acc957c266c1fef076f602b66861c
@@ -1 +0,0 @@
1
- 340fc63dd4b514f7367b05f97dd3c43f909bf9cc
@@ -1 +0,0 @@
1
- 4451cfbd861ce7846f1e73930b9e16ac7ff3e465bdb372ed5951dd97d083d68e
@@ -1 +0,0 @@
1
- 70641a31152ce0957cc51fbedd21dbf4021eca76af86dd0aaadb4b8b0671ec97c367f20da996497f123be5b150b682e30c1b3aa179fce8af337e296527823b34