@kraken-e2e/driver-ios 1.0.0 → 2.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.
- package/dist/devices.d.ts +8 -0
- package/dist/devices.d.ts.map +1 -0
- package/dist/devices.js +61 -0
- package/dist/devices.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -3
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DeviceTarget } from '@kraken-e2e/contracts';
|
|
2
|
+
export type CommandRunner = (command: string, args: readonly string[]) => {
|
|
3
|
+
status: number | null;
|
|
4
|
+
stdout: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const spawnRunner: CommandRunner;
|
|
7
|
+
export declare function listIosTargets(run?: CommandRunner): Promise<readonly DeviceTarget[]>;
|
|
8
|
+
//# sourceMappingURL=devices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../src/devices.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,KACpB;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/C,eAAO,MAAM,WAAW,EAAE,aAGzB,CAAC;AAeF,wBAAsB,cAAc,CAClC,GAAG,GAAE,aAA2B,GAC/B,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAoClC"}
|
package/dist/devices.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* iOS simulator enumeration for `kraken devices` (contract 2.1). Read-only:
|
|
3
|
+
* `xcrun simctl list devices --json`. Booted simulators come first — pinning
|
|
4
|
+
* one (deviceName + platformVersion, or udid) reuses it and boots nothing.
|
|
5
|
+
*
|
|
6
|
+
* This enumeration is also the antidote to the deviceName/platformVersion
|
|
7
|
+
* trap (ADR-0008 D6): it shows the EXACT (name, version) pairs that really
|
|
8
|
+
* exist, so users never point xcuitest at a device it would silently
|
|
9
|
+
* re-create as a ghost simulator.
|
|
10
|
+
*/
|
|
11
|
+
import { spawnSync } from 'node:child_process';
|
|
12
|
+
export const spawnRunner = (command, args) => {
|
|
13
|
+
const result = spawnSync(command, [...args], { encoding: 'utf8', timeout: 15_000 });
|
|
14
|
+
return { status: result.status, stdout: `${result.stdout ?? ''}` };
|
|
15
|
+
};
|
|
16
|
+
/** 'com.apple.CoreSimulator.SimRuntime.iOS-26-5' → '26.5' (undefined for non-iOS). */
|
|
17
|
+
function iosVersionOf(runtimeId) {
|
|
18
|
+
const match = /SimRuntime\.iOS-(\d+)-(\d+)/.exec(runtimeId);
|
|
19
|
+
return match ? `${match[1]}.${match[2]}` : undefined;
|
|
20
|
+
}
|
|
21
|
+
export async function listIosTargets(run = spawnRunner) {
|
|
22
|
+
if (process.platform !== 'darwin')
|
|
23
|
+
return [];
|
|
24
|
+
const result = run('xcrun', ['simctl', 'list', 'devices', '--json']);
|
|
25
|
+
if (result.status !== 0)
|
|
26
|
+
return [];
|
|
27
|
+
let parsed;
|
|
28
|
+
try {
|
|
29
|
+
parsed = JSON.parse(result.stdout);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
const targets = [];
|
|
35
|
+
for (const [runtimeId, devices] of Object.entries(parsed.devices ?? {})) {
|
|
36
|
+
const version = iosVersionOf(runtimeId);
|
|
37
|
+
if (version === undefined)
|
|
38
|
+
continue; // tvOS/watchOS/visionOS: not xcuitest targets here
|
|
39
|
+
for (const device of devices) {
|
|
40
|
+
if (device.isAvailable === false)
|
|
41
|
+
continue;
|
|
42
|
+
const booted = device.state === 'Booted';
|
|
43
|
+
targets.push({
|
|
44
|
+
id: device.udid,
|
|
45
|
+
name: `${device.name} (iOS ${version})`,
|
|
46
|
+
platform: 'ios',
|
|
47
|
+
kind: 'simulator',
|
|
48
|
+
state: booted ? 'running' : 'available',
|
|
49
|
+
actorConfig: booted
|
|
50
|
+
? // udid pins the BOOTED simulator exactly — instant reuse.
|
|
51
|
+
{ platform: 'ios', udid: device.udid }
|
|
52
|
+
: // name+version MUST both be pinned (ADR-0008 D6 ghost-sim trap).
|
|
53
|
+
{ platform: 'ios', deviceName: device.name, platformVersion: version },
|
|
54
|
+
...(booted ? { detail: 'booted' } : {}),
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// Booted first — they're the ones worth reusing.
|
|
59
|
+
return targets.sort((a, b) => (a.state === b.state ? 0 : a.state === 'running' ? -1 : 1));
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=devices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devices.js","sourceRoot":"","sources":["../src/devices.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,oDAAoD;IACpD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,yCAAyC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,oDAAoD;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC3D;AA8BD,eAAO,MAAM,GAAG,yGA4Fd,CAAC;AAEH,eAAe,GAAG,CAAC;AACnB,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,23 +6,49 @@
|
|
|
6
6
|
* (ADR-0001 §5.5): this entry must still be importable on every host —
|
|
7
7
|
* appium and webdriverio load DYNAMICALLY inside start()/createSession().
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { existsSync } from 'node:fs';
|
|
10
|
+
import { isAbsolute, join, resolve } from 'node:path';
|
|
11
|
+
import { defineDriver, KrakenError } from '@kraken-e2e/contracts';
|
|
11
12
|
import { allocatePort, startAppiumServer } from './appium-server.js';
|
|
13
|
+
import { listIosTargets } from './devices.js';
|
|
12
14
|
import { iosDoctorChecks } from './doctor.js';
|
|
13
15
|
import { manifest } from './manifest.js';
|
|
14
16
|
import { IosUserSession } from './wdio-session.js';
|
|
17
|
+
/**
|
|
18
|
+
* Fail-fast app validation: a missing app file must die HERE, in
|
|
19
|
+
* milliseconds, with an actionable message — not after minutes of
|
|
20
|
+
* emulator/simulator boot inside an Appium session error (observed live
|
|
21
|
+
* following the tutorial with placeholder paths).
|
|
22
|
+
*/
|
|
23
|
+
function resolveAppPath(config, projectRoot, actorId) {
|
|
24
|
+
if (typeof config['app'] !== 'string')
|
|
25
|
+
return undefined;
|
|
26
|
+
const resolved = isAbsolute(config['app']) ? config['app'] : resolve(projectRoot, config['app']);
|
|
27
|
+
if (!existsSync(resolved)) {
|
|
28
|
+
throw new KrakenError('KRK-DRIVER-APP-NOT-FOUND', `Actor "${actorId}": the app file does not exist: ${resolved}`, {
|
|
29
|
+
fix: 'Check the `app` path in kraken.config.ts (relative paths resolve against the project root). ' +
|
|
30
|
+
'Need a test app? The WebdriverIO native-demo-app works out of the box — see the Kraken tutorial, ' +
|
|
31
|
+
'or run `kraken devices` to see what you already have.',
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return resolved;
|
|
35
|
+
}
|
|
15
36
|
export const ios = defineDriver((opts = {}) => {
|
|
16
37
|
let server;
|
|
38
|
+
let startedProjectRoot;
|
|
17
39
|
return {
|
|
18
40
|
manifest,
|
|
19
41
|
doctor: iosDoctorChecks(),
|
|
42
|
+
async listTargets() {
|
|
43
|
+
return listIosTargets();
|
|
44
|
+
},
|
|
20
45
|
async start(host, services) {
|
|
21
46
|
if (server) {
|
|
22
47
|
// Double start would silently leak the first embedded server.
|
|
23
48
|
throw new Error('driver-ios: already started — call stop() first.');
|
|
24
49
|
}
|
|
25
50
|
const projectRoot = host.projectRoot ?? process.cwd();
|
|
51
|
+
startedProjectRoot = projectRoot;
|
|
26
52
|
server = await startAppiumServer({
|
|
27
53
|
homeDir: join(projectRoot, '.kraken', 'appium', 'ios-home'),
|
|
28
54
|
driverPackages: ['appium-xcuitest-driver'],
|
|
@@ -36,6 +62,7 @@ export const ios = defineDriver((opts = {}) => {
|
|
|
36
62
|
throw new Error('driver-ios: start() must run before createSession().');
|
|
37
63
|
}
|
|
38
64
|
const config = actor.config;
|
|
65
|
+
const appPath = resolveAppPath(config, startedProjectRoot ?? process.cwd(), actor.id);
|
|
39
66
|
// OS-assigned free ports (see driver-android note: fixed-base counters
|
|
40
67
|
// collide across concurrent runs on one machine).
|
|
41
68
|
const wdaLocalPort = await allocatePort();
|
|
@@ -58,7 +85,7 @@ export const ios = defineDriver((opts = {}) => {
|
|
|
58
85
|
}
|
|
59
86
|
: {}),
|
|
60
87
|
...(typeof config['udid'] === 'string' ? { 'appium:udid': config['udid'] } : {}),
|
|
61
|
-
...(
|
|
88
|
+
...(appPath !== undefined ? { 'appium:app': appPath } : {}),
|
|
62
89
|
...(typeof config['bundleId'] === 'string'
|
|
63
90
|
? { 'appium:bundleId': config['bundleId'] }
|
|
64
91
|
: {}),
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kraken-e2e/driver-ios",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "iOS driver: Appium 3 + appium-xcuitest-driver (hostRequirements: darwin — macOS only, Apple platform restriction)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -23,14 +23,14 @@
|
|
|
23
23
|
"node": ">=22.13.0"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@kraken-e2e/contracts": "^0.
|
|
26
|
+
"@kraken-e2e/contracts": "^2.0.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/node": "^22.15.0",
|
|
30
30
|
"typescript": "~6.0.3",
|
|
31
31
|
"vitest": "^4.1.9",
|
|
32
|
-
"@kraken-e2e/
|
|
33
|
-
"@kraken-e2e/
|
|
32
|
+
"@kraken-e2e/core": "2.0.0",
|
|
33
|
+
"@kraken-e2e/contracts": "2.0.0"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"appium": "3.5.2",
|