@goliapkg/smix 10.1.0 → 12.0.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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { A11yNode } from './A11yNode.js';
|
|
2
2
|
/**
|
|
3
3
|
* Rust `smix_error::FailureCode`'s wire strings verbatim —
|
|
4
|
-
* `crates/smix-error/tests/sdk_failure_code_parity.rs` reads this
|
|
4
|
+
* `crates/smix-error/tests/it/sdk_failure_code_parity.rs` reads this
|
|
5
5
|
* declaration and fails if the two sets ever diverge.
|
|
6
6
|
*/
|
|
7
7
|
export type FailureCode = 'ELEMENT_NOT_FOUND' | 'NOT_VISIBLE' | 'NOT_ENABLED' | 'AMBIGUOUS' | 'TIMEOUT' | 'ASSERTION_FAILED' | 'APP_NOT_RUNNING' | 'SIMULATOR_NOT_BOOTED'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goliapkg/smix",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "12.0.0",
|
|
4
4
|
"description": "Playwright-shape iOS Simulator / Android emulator UI automation SDK for React Native + Expo + Detox-compatible TypeScript test runners.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0 OR MIT",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"typecheck": "tsc --noEmit -p tsconfig.json && tsc -p tsconfig.test.json"
|
|
26
26
|
},
|
|
27
27
|
"optionalDependencies": {
|
|
28
|
-
"@goliapkg/smix-node": "
|
|
28
|
+
"@goliapkg/smix-node": "12.0.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/node": "^20.14.0",
|
|
@@ -8,7 +8,7 @@ import type { A11yNode } from './A11yNode.js'
|
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Rust `smix_error::FailureCode`'s wire strings verbatim —
|
|
11
|
-
* `crates/smix-error/tests/sdk_failure_code_parity.rs` reads this
|
|
11
|
+
* `crates/smix-error/tests/it/sdk_failure_code_parity.rs` reads this
|
|
12
12
|
* declaration and fails if the two sets ever diverge.
|
|
13
13
|
*/
|
|
14
14
|
export type FailureCode =
|
|
@@ -64,7 +64,7 @@ describe('A11yRole', () => {
|
|
|
64
64
|
|
|
65
65
|
describe('FailureCode', () => {
|
|
66
66
|
// The vocabulary is Rust's — smix_error::FailureCode. Rust is the
|
|
67
|
-
// source; crates/smix-error/tests/sdk_failure_code_parity.rs reads
|
|
67
|
+
// source; crates/smix-error/tests/it/sdk_failure_code_parity.rs reads
|
|
68
68
|
// this SDK's declaration and fails if the two ever diverge.
|
|
69
69
|
// The count is not hard-coded here. It used to be, and adding
|
|
70
70
|
// TAP_MISSED to the vocabulary left this asserting 9 against 10 — a
|
|
@@ -41,7 +41,27 @@ async function startFakeWire(): Promise<Wire> {
|
|
|
41
41
|
await new Promise<void>((r) => server.listen(0, '127.0.0.1', () => r()))
|
|
42
42
|
const addr = server.address()
|
|
43
43
|
const port = typeof addr === 'object' && addr ? addr.port : 0
|
|
44
|
-
|
|
44
|
+
// Keep-alive stays on, as it is on the real runner; `close` drops the
|
|
45
|
+
// connections the addon's pool is holding before it waits.
|
|
46
|
+
//
|
|
47
|
+
// `server.close()` waits for every open socket to end, and the addon
|
|
48
|
+
// keeps its idle one. Measured on a 2-core Linux box (`taskset -c
|
|
49
|
+
// 0,1`, lx64, 2026-09-24/25, ten runs each): every request finished in
|
|
50
|
+
// 3–70 ms, and in 9 of 10 runs a test then sat out its whole timeout
|
|
51
|
+
// inside this `close`. Dropping the connections first: 10/10 in under
|
|
52
|
+
// half a second. The same wire in a process of its own, with four busy
|
|
53
|
+
// loops on those two cores: 10/10. What stalled was this stand-in's
|
|
54
|
+
// teardown, not a request on a reused connection — 11.0 read it as the
|
|
55
|
+
// latter and answered `connection: close` on every reply.
|
|
56
|
+
return {
|
|
57
|
+
port,
|
|
58
|
+
seen,
|
|
59
|
+
close: () =>
|
|
60
|
+
new Promise((r) => {
|
|
61
|
+
server.closeAllConnections()
|
|
62
|
+
server.close(() => r())
|
|
63
|
+
}),
|
|
64
|
+
}
|
|
45
65
|
}
|
|
46
66
|
|
|
47
67
|
describe('smix-rn drives through the real napi addon (C4)', () => {
|