system-testing 1.0.2 → 1.0.4
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/package.json
CHANGED
package/src/system-test.js
CHANGED
|
@@ -7,7 +7,6 @@ import moment from "moment"
|
|
|
7
7
|
import {prettify} from "htmlfy"
|
|
8
8
|
import SystemTestCommunicator from "./system-test-communicator.js"
|
|
9
9
|
import SystemTestHttpServer from "./system-test-http-server.js"
|
|
10
|
-
import {wait} from "awaitery"
|
|
11
10
|
import {WebSocketServer} from "ws"
|
|
12
11
|
|
|
13
12
|
class ElementNotFoundError extends Error { }
|
|
@@ -26,9 +25,9 @@ export default class SystemTest {
|
|
|
26
25
|
|
|
27
26
|
await systemTest.communicator.sendCommand({type: "initialize"})
|
|
28
27
|
await systemTest.visit("/blank")
|
|
29
|
-
await systemTest.findByTestID("blankText")
|
|
30
28
|
|
|
31
29
|
try {
|
|
30
|
+
await systemTest.findByTestID("blankText")
|
|
32
31
|
await callback(systemTest)
|
|
33
32
|
} catch (error) {
|
|
34
33
|
await systemTest.takeScreenshot()
|
|
@@ -181,13 +180,11 @@ export default class SystemTest {
|
|
|
181
180
|
.setCapability("goog:loggingPrefs", {browser: "ALL"})
|
|
182
181
|
.build()
|
|
183
182
|
|
|
184
|
-
this.setTimeouts(
|
|
183
|
+
await this.setTimeouts(10000)
|
|
185
184
|
|
|
186
185
|
// Web socket server to communicate with browser
|
|
187
186
|
await this.startWebSocketServer()
|
|
188
187
|
|
|
189
|
-
// await wait(360000)
|
|
190
|
-
|
|
191
188
|
// Visit the root page and wait for Expo to be loaded and the app to appear
|
|
192
189
|
await this.driverVisit("/?systemTest=true")
|
|
193
190
|
|
|
@@ -203,6 +200,7 @@ export default class SystemTest {
|
|
|
203
200
|
// Wait for client to connect
|
|
204
201
|
await this.waitForClientWebSocket()
|
|
205
202
|
|
|
203
|
+
await this.setTimeouts(4000)
|
|
206
204
|
this._started = true
|
|
207
205
|
}
|
|
208
206
|
|
package/src/use-system-test.js
CHANGED
|
@@ -1,61 +1,59 @@
|
|
|
1
1
|
import qs from "qs"
|
|
2
2
|
import SystemTestBrowserHelper from "./system-test-browser-helper"
|
|
3
|
-
import {useCallback,
|
|
3
|
+
import {useCallback, useMemo} from "react"
|
|
4
4
|
import useEventEmitter from "@kaspernj/api-maker/build/use-event-emitter.js"
|
|
5
5
|
import {useRouter} from "expo-router"
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const [systemTestBrowserHelper, setSystemTestBrowserHelper] = useState()
|
|
12
|
-
|
|
13
|
-
const calculateEnabled = useCallback(() => {
|
|
14
|
-
const initialUrl = globalThis.location?.href
|
|
15
|
-
let enabled = false
|
|
7
|
+
const shared = {
|
|
8
|
+
initialized: false,
|
|
9
|
+
systemTestBrowserHelper: null
|
|
10
|
+
}
|
|
16
11
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
const isSystemTestEnabled = () => {
|
|
13
|
+
let enabled = false
|
|
14
|
+
const initialUrl = globalThis.location?.href
|
|
20
15
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
if (initialUrl) {
|
|
17
|
+
const queryString = initialUrl.substring(initialUrl.indexOf("?") + 1, initialUrl.length)
|
|
18
|
+
const queryParams = qs.parse(queryString)
|
|
24
19
|
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
if (queryParams.systemTest == "true") {
|
|
21
|
+
enabled = true
|
|
22
|
+
}
|
|
23
|
+
}
|
|
27
24
|
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
return enabled
|
|
26
|
+
}
|
|
30
27
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
const getSystemTestBrowserHelper = () => {
|
|
29
|
+
if (!shared.systemTestBrowserHelper) {
|
|
30
|
+
shared.systemTestBrowserHelper = new SystemTestBrowserHelper()
|
|
31
|
+
shared.systemTestBrowserHelper.enableOnBrowser()
|
|
32
|
+
}
|
|
34
33
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}, [])
|
|
34
|
+
return shared.systemTestBrowserHelper
|
|
35
|
+
}
|
|
38
36
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
export default function useSystemTest({onInitialize, ...restArgs} = {}) {
|
|
38
|
+
const router = useRouter()
|
|
39
|
+
const enabled = useMemo(() => isSystemTestEnabled(), [])
|
|
40
|
+
const systemTestBrowserHelper = enabled ? getSystemTestBrowserHelper() : null
|
|
41
|
+
const result = useMemo(() => ({enabled, systemTestBrowserHelper}), [enabled, systemTestBrowserHelper])
|
|
43
42
|
|
|
44
43
|
const onSystemTestBrowserHelperNavigate = useCallback(({path}) => {
|
|
45
|
-
if (
|
|
44
|
+
if (enabled) {
|
|
46
45
|
router.navigate(path)
|
|
47
46
|
}
|
|
48
|
-
}, [])
|
|
49
|
-
|
|
50
|
-
useEffect(() => {
|
|
51
|
-
calculateEnabled()
|
|
52
|
-
}, [])
|
|
47
|
+
}, [enabled, router])
|
|
53
48
|
|
|
54
49
|
useEventEmitter(shared.systemTestBrowserHelper?.getEvents(), "navigate", onSystemTestBrowserHelperNavigate)
|
|
55
50
|
|
|
56
51
|
useMemo(() => {
|
|
57
|
-
shared.
|
|
58
|
-
|
|
52
|
+
if (enabled && !shared.initialized) {
|
|
53
|
+
shared.initialized = true
|
|
54
|
+
shared.systemTestBrowserHelper?.onInitialize(onInitialize)
|
|
55
|
+
}
|
|
56
|
+
}, [enabled, onInitialize, shared.systemTestBrowserHelper])
|
|
59
57
|
|
|
60
58
|
const restArgsKeys = Object.keys(restArgs)
|
|
61
59
|
|