mobilewright 0.0.26 → 0.0.27
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/cli.js +51 -3
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +3 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +18 -3
- package/dist/config.js.map +1 -1
- package/dist/config.test.d.ts +2 -0
- package/dist/config.test.d.ts.map +1 -0
- package/dist/config.test.js +22 -0
- package/dist/config.test.js.map +1 -0
- package/dist/device-pool/adapters/http-client.d.ts +16 -0
- package/dist/device-pool/adapters/http-client.d.ts.map +1 -0
- package/dist/device-pool/adapters/http-client.js +91 -0
- package/dist/device-pool/adapters/http-client.js.map +1 -0
- package/dist/device-pool/adapters/http-client.test.d.ts +2 -0
- package/dist/device-pool/adapters/http-client.test.d.ts.map +1 -0
- package/dist/device-pool/adapters/http-client.test.js +72 -0
- package/dist/device-pool/adapters/http-client.test.js.map +1 -0
- package/dist/device-pool/adapters/http-server.d.ts +19 -0
- package/dist/device-pool/adapters/http-server.d.ts.map +1 -0
- package/dist/device-pool/adapters/http-server.js +126 -0
- package/dist/device-pool/adapters/http-server.js.map +1 -0
- package/dist/device-pool/adapters/http-server.test.d.ts +2 -0
- package/dist/device-pool/adapters/http-server.test.d.ts.map +1 -0
- package/dist/device-pool/adapters/http-server.test.js +203 -0
- package/dist/device-pool/adapters/http-server.test.js.map +1 -0
- package/dist/device-pool/adapters/mobile-use-allocator.d.ts +13 -0
- package/dist/device-pool/adapters/mobile-use-allocator.d.ts.map +1 -0
- package/dist/device-pool/adapters/mobile-use-allocator.js +31 -0
- package/dist/device-pool/adapters/mobile-use-allocator.js.map +1 -0
- package/dist/device-pool/adapters/mobilecli-allocator.d.ts +19 -0
- package/dist/device-pool/adapters/mobilecli-allocator.d.ts.map +1 -0
- package/dist/device-pool/adapters/mobilecli-allocator.js +26 -0
- package/dist/device-pool/adapters/mobilecli-allocator.js.map +1 -0
- package/dist/device-pool/adapters/mobilecli-allocator.test.d.ts +2 -0
- package/dist/device-pool/adapters/mobilecli-allocator.test.d.ts.map +1 -0
- package/dist/device-pool/adapters/mobilecli-allocator.test.js +61 -0
- package/dist/device-pool/adapters/mobilecli-allocator.test.js.map +1 -0
- package/dist/device-pool/allocator-factory.d.ts +10 -0
- package/dist/device-pool/allocator-factory.d.ts.map +1 -0
- package/dist/device-pool/allocator-factory.js +25 -0
- package/dist/device-pool/allocator-factory.js.map +1 -0
- package/dist/device-pool/application/device-pool.d.ts +29 -0
- package/dist/device-pool/application/device-pool.d.ts.map +1 -0
- package/dist/device-pool/application/device-pool.js +174 -0
- package/dist/device-pool/application/device-pool.js.map +1 -0
- package/dist/device-pool/application/device-pool.test.d.ts +2 -0
- package/dist/device-pool/application/device-pool.test.d.ts.map +1 -0
- package/dist/device-pool/application/device-pool.test.js +185 -0
- package/dist/device-pool/application/device-pool.test.js.map +1 -0
- package/dist/device-pool/application/ports.d.ts +44 -0
- package/dist/device-pool/application/ports.d.ts.map +1 -0
- package/dist/device-pool/application/ports.js +13 -0
- package/dist/device-pool/application/ports.js.map +1 -0
- package/dist/device-pool/client-factory.d.ts +8 -0
- package/dist/device-pool/client-factory.d.ts.map +1 -0
- package/dist/device-pool/client-factory.js +16 -0
- package/dist/device-pool/client-factory.js.map +1 -0
- package/dist/device-pool/domain/allocation.d.ts +21 -0
- package/dist/device-pool/domain/allocation.d.ts.map +1 -0
- package/dist/device-pool/domain/allocation.js +14 -0
- package/dist/device-pool/domain/allocation.js.map +1 -0
- package/dist/device-pool/domain/allocation.test.d.ts +2 -0
- package/dist/device-pool/domain/allocation.test.d.ts.map +1 -0
- package/dist/device-pool/domain/allocation.test.js +21 -0
- package/dist/device-pool/domain/allocation.test.js.map +1 -0
- package/dist/device-pool/domain/device-slot.d.ts +22 -0
- package/dist/device-pool/domain/device-slot.d.ts.map +1 -0
- package/dist/device-pool/domain/device-slot.js +53 -0
- package/dist/device-pool/domain/device-slot.js.map +1 -0
- package/dist/device-pool/domain/device-slot.test.d.ts +2 -0
- package/dist/device-pool/domain/device-slot.test.d.ts.map +1 -0
- package/dist/device-pool/domain/device-slot.test.js +53 -0
- package/dist/device-pool/domain/device-slot.test.js.map +1 -0
- package/dist/device-pool/setup.d.ts +7 -0
- package/dist/device-pool/setup.d.ts.map +1 -0
- package/dist/device-pool/setup.js +35 -0
- package/dist/device-pool/setup.js.map +1 -0
- package/dist/device-pool/teardown.d.ts +7 -0
- package/dist/device-pool/teardown.d.ts.map +1 -0
- package/dist/device-pool/teardown.js +9 -0
- package/dist/device-pool/teardown.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/launchers.d.ts +19 -1
- package/dist/launchers.d.ts.map +1 -1
- package/dist/launchers.js +53 -22
- package/dist/launchers.js.map +1 -1
- package/package.json +6 -6
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import { execFileSync } from 'node:child_process';
|
|
4
|
-
import { existsSync } from 'node:fs';
|
|
4
|
+
import { existsSync, renameSync } from 'node:fs';
|
|
5
5
|
import { readFile, writeFile } from 'node:fs/promises';
|
|
6
6
|
import { resolve, dirname } from 'node:path';
|
|
7
7
|
import { fileURLToPath } from 'node:url';
|
|
@@ -30,6 +30,7 @@ program
|
|
|
30
30
|
.option('--retries <retries>', 'maximum retry count for flaky tests')
|
|
31
31
|
.option('--timeout <timeout>', 'test timeout in milliseconds')
|
|
32
32
|
.option('--workers <workers>', 'number of concurrent workers')
|
|
33
|
+
.option('--shard <shard>', 'shard to run, e.g. 1/3 (run first of three shards)')
|
|
33
34
|
.option('--pass-with-no-tests', 'exit with code 0 when no tests found')
|
|
34
35
|
.option('--list', 'list all tests without running them')
|
|
35
36
|
.action(async (args, opts) => {
|
|
@@ -40,8 +41,22 @@ program
|
|
|
40
41
|
overrides.timeout = Number(opts.timeout);
|
|
41
42
|
if (opts.retries)
|
|
42
43
|
overrides.retries = Number(opts.retries);
|
|
43
|
-
if (opts.
|
|
44
|
-
|
|
44
|
+
if (opts.shard) {
|
|
45
|
+
const match = opts.shard.match(/^(\d+)\/(\d+)$/);
|
|
46
|
+
if (!match) {
|
|
47
|
+
console.error(`error: --shard must be in the format x/n (e.g. 1/3), got: ${opts.shard}`);
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
overrides.shard = { current: Number(match[1]), total: Number(match[2]) };
|
|
51
|
+
}
|
|
52
|
+
if (opts.workers) {
|
|
53
|
+
const n = Number(opts.workers);
|
|
54
|
+
if (!Number.isInteger(n) || n < 1) {
|
|
55
|
+
console.error(`error: --workers must be a positive integer, got: ${opts.workers}`);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
overrides.workers = n;
|
|
59
|
+
}
|
|
45
60
|
if (opts.reporter) {
|
|
46
61
|
const names = opts.reporter.split(',');
|
|
47
62
|
overrides.reporter = names.map((name) => {
|
|
@@ -103,6 +118,39 @@ program
|
|
|
103
118
|
args.push('--host', opts.host, '--port', opts.port);
|
|
104
119
|
await pwProgram.parseAsync(args);
|
|
105
120
|
});
|
|
121
|
+
// ── merge-reports ──────────────────────────────────────────────────────
|
|
122
|
+
// Delegate to Playwright's merge-reports, then rename playwright-report
|
|
123
|
+
// to mobilewright-report when the html reporter is used.
|
|
124
|
+
program
|
|
125
|
+
.command('merge-reports [dir]')
|
|
126
|
+
.description('merge blob reports from sharded runs into one report')
|
|
127
|
+
.option('--reporter <reporter>', 'reporter to use for the merged output (e.g. html, json)')
|
|
128
|
+
.option('--config <file>', 'configuration file')
|
|
129
|
+
.action(async (dir, opts) => {
|
|
130
|
+
const { program: pwProgram } = await import('playwright/lib/program');
|
|
131
|
+
const args = ['node', 'playwright', 'merge-reports'];
|
|
132
|
+
if (dir) {
|
|
133
|
+
args.push(dir);
|
|
134
|
+
}
|
|
135
|
+
if (opts.reporter) {
|
|
136
|
+
args.push('--reporter', opts.reporter);
|
|
137
|
+
}
|
|
138
|
+
if (opts.config) {
|
|
139
|
+
args.push('--config', opts.config);
|
|
140
|
+
}
|
|
141
|
+
await pwProgram.parseAsync(args);
|
|
142
|
+
const reporter = opts.reporter ?? 'html';
|
|
143
|
+
if (reporter === 'html') {
|
|
144
|
+
const playwrightReport = resolve(process.cwd(), 'playwright-report');
|
|
145
|
+
const mobilewriteReport = resolve(process.cwd(), HTML_REPORT_DIR);
|
|
146
|
+
try {
|
|
147
|
+
renameSync(playwrightReport, mobilewriteReport);
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
// Already renamed, or html reporter not used — nothing to do.
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
});
|
|
106
154
|
function printDevicesTable(devices) {
|
|
107
155
|
console.log(padRight('ID', 40) +
|
|
108
156
|
padRight('Name', 25) +
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -83,12 +83,13 @@ export interface MobilewrightConfig {
|
|
|
83
83
|
/** Reporter to use. */
|
|
84
84
|
reporter?: 'list' | 'html' | 'json' | 'junit' | Array<[string] | [string, unknown]>;
|
|
85
85
|
/** Global setup file — runs once before all tests. */
|
|
86
|
-
globalSetup?: string;
|
|
86
|
+
globalSetup?: string | string[];
|
|
87
87
|
/** Global teardown file — runs once after all tests. */
|
|
88
|
-
globalTeardown?: string;
|
|
88
|
+
globalTeardown?: string | string[];
|
|
89
89
|
/** Multi-device / multi-platform project matrix. */
|
|
90
90
|
projects?: MobilewrightProjectConfig[];
|
|
91
91
|
}
|
|
92
|
+
export declare function toArray<T>(value: T | T[] | undefined): T[];
|
|
92
93
|
/** Type-safe config helper for mobilewright.config.ts files. */
|
|
93
94
|
export declare function defineConfig(config: MobilewrightConfig): MobilewrightConfig;
|
|
94
95
|
/**
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -1,10 +1,25 @@
|
|
|
1
1
|
import { access } from 'node:fs/promises';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
+
import { createRequire } from 'node:module';
|
|
4
|
+
const _require = createRequire(import.meta.url);
|
|
5
|
+
export function toArray(value) {
|
|
6
|
+
if (value === undefined) {
|
|
7
|
+
return [];
|
|
8
|
+
}
|
|
9
|
+
return Array.isArray(value) ? value : [value];
|
|
10
|
+
}
|
|
3
11
|
/** Type-safe config helper for mobilewright.config.ts files. */
|
|
4
12
|
export function defineConfig(config) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
13
|
+
const ourSetup = _require.resolve('./device-pool/setup.js');
|
|
14
|
+
const ourTeardown = _require.resolve('./device-pool/teardown.js');
|
|
15
|
+
const userSetups = toArray(config.globalSetup);
|
|
16
|
+
const userTeardowns = toArray(config.globalTeardown);
|
|
17
|
+
return {
|
|
18
|
+
workers: 1,
|
|
19
|
+
...config,
|
|
20
|
+
globalSetup: userSetups.length > 0 ? [ourSetup, ...userSetups] : ourSetup,
|
|
21
|
+
globalTeardown: userTeardowns.length > 0 ? [...userTeardowns, ourTeardown] : ourTeardown,
|
|
22
|
+
};
|
|
8
23
|
}
|
|
9
24
|
const CONFIG_FILES = [
|
|
10
25
|
'mobilewright.config.ts',
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AA0GhD,MAAM,UAAU,OAAO,CAAI,KAA0B;IACnD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,YAAY,CAAC,MAA0B;IACrD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAErD,OAAO;QACL,OAAO,EAAE,CAAC;QACV,GAAG,MAAM;QACT,WAAW,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ;QACzE,cAAc,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW;KACzF,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAG;IACnB,wBAAwB;IACxB,wBAAwB;IACxB,yBAAyB;CAC1B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;YAChC,gFAAgF;YAChF,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;gBAChE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YAC1B,CAAC;YACD,OAAO,MAA4B,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.test.d.ts","sourceRoot":"","sources":["../src/config.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { test, expect } from '@playwright/test';
|
|
2
|
+
import { defineConfig } from './config.js';
|
|
3
|
+
test('defineConfig injects globalSetup pointing at device-pool/setup.js', () => {
|
|
4
|
+
const config = defineConfig({});
|
|
5
|
+
expect(typeof config.globalSetup).toBe('string');
|
|
6
|
+
expect(config.globalSetup).toMatch(/device-pool[\/\\]setup\.(js|ts)$/);
|
|
7
|
+
});
|
|
8
|
+
test('defineConfig composes user globalSetup before the user expects', () => {
|
|
9
|
+
const config = defineConfig({ globalSetup: '/custom/setup.js' });
|
|
10
|
+
const setups = Array.isArray(config.globalSetup) ? config.globalSetup : [config.globalSetup];
|
|
11
|
+
expect(setups[0]).toMatch(/device-pool[\/\\]setup\.(js|ts)$/);
|
|
12
|
+
expect(setups).toContain('/custom/setup.js');
|
|
13
|
+
});
|
|
14
|
+
test('defineConfig defaults workers to 1', () => {
|
|
15
|
+
const config = defineConfig({});
|
|
16
|
+
expect(config.workers).toBe(1);
|
|
17
|
+
});
|
|
18
|
+
test('defineConfig respects user-provided workers', () => {
|
|
19
|
+
const config = defineConfig({ workers: 4 });
|
|
20
|
+
expect(config.workers).toBe(4);
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=config.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../src/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,IAAI,CAAC,mEAAmE,EAAE,GAAG,EAAE;IAC7E,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,CAAC,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,CAAC,MAAM,CAAC,WAAqB,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;AACnF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gEAAgE,EAAE,GAAG,EAAE;IAC1E,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC7F,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;IAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAC9C,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;IACvD,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AllocationCriteria, AllocationHandle, DevicePoolClient } from '../application/ports.js';
|
|
2
|
+
export interface HttpDevicePoolClientOptions {
|
|
3
|
+
baseUrl: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class HttpDevicePoolClient implements DevicePoolClient {
|
|
6
|
+
private readonly baseUrl;
|
|
7
|
+
private readonly agent;
|
|
8
|
+
private readonly openAllocateRequests;
|
|
9
|
+
constructor(options: HttpDevicePoolClientOptions);
|
|
10
|
+
allocate(criteria: AllocationCriteria): Promise<AllocationHandle>;
|
|
11
|
+
release(allocationId: string): Promise<void>;
|
|
12
|
+
isAppInstalled(allocationId: string, bundleId: string): Promise<boolean>;
|
|
13
|
+
recordAppInstalled(allocationId: string, bundleId: string): Promise<void>;
|
|
14
|
+
private postJson;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=http-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/device-pool/adapters/http-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAoC;gBAE7D,OAAO,EAAE,2BAA2B;IAKhD,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwC3D,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5C,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxE,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/E,OAAO,CAAC,QAAQ;CA4BjB"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Agent, request } from 'node:http';
|
|
2
|
+
export class HttpDevicePoolClient {
|
|
3
|
+
constructor(options) {
|
|
4
|
+
this.openAllocateRequests = new Map();
|
|
5
|
+
this.baseUrl = options.baseUrl;
|
|
6
|
+
this.agent = new Agent({ keepAlive: true });
|
|
7
|
+
}
|
|
8
|
+
allocate(criteria) {
|
|
9
|
+
return new Promise((resolve, reject) => {
|
|
10
|
+
const url = new URL('/allocate', this.baseUrl);
|
|
11
|
+
const req = request({
|
|
12
|
+
method: 'POST',
|
|
13
|
+
host: url.hostname,
|
|
14
|
+
port: url.port,
|
|
15
|
+
path: url.pathname,
|
|
16
|
+
agent: this.agent,
|
|
17
|
+
headers: { 'content-type': 'application/json' },
|
|
18
|
+
}, (res) => {
|
|
19
|
+
if (res.statusCode !== 200) {
|
|
20
|
+
let buffer = '';
|
|
21
|
+
res.on('data', (chunk) => { buffer += chunk.toString('utf8'); });
|
|
22
|
+
res.on('end', () => reject(new Error(`HTTP ${res.statusCode}: ${buffer}`)));
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
let buffer = '';
|
|
26
|
+
const onData = (chunk) => {
|
|
27
|
+
buffer += chunk.toString('utf8');
|
|
28
|
+
const newlineIdx = buffer.indexOf('\n');
|
|
29
|
+
if (newlineIdx === -1) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const handle = JSON.parse(buffer.slice(0, newlineIdx));
|
|
33
|
+
res.off('data', onData);
|
|
34
|
+
this.openAllocateRequests.set(handle.allocationId, req);
|
|
35
|
+
// If the server closes the stream (e.g. on shutdown), release the map entry.
|
|
36
|
+
res.on('close', () => this.openAllocateRequests.delete(handle.allocationId));
|
|
37
|
+
resolve(handle);
|
|
38
|
+
};
|
|
39
|
+
res.on('data', onData);
|
|
40
|
+
res.on('error', reject);
|
|
41
|
+
});
|
|
42
|
+
req.on('error', reject);
|
|
43
|
+
req.write(JSON.stringify({ criteria }));
|
|
44
|
+
req.end();
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
async release(allocationId) {
|
|
48
|
+
const openReq = this.openAllocateRequests.get(allocationId);
|
|
49
|
+
if (openReq) {
|
|
50
|
+
this.openAllocateRequests.delete(allocationId);
|
|
51
|
+
openReq.destroy();
|
|
52
|
+
}
|
|
53
|
+
await this.postJson('/release', { allocationId });
|
|
54
|
+
}
|
|
55
|
+
async isAppInstalled(allocationId, bundleId) {
|
|
56
|
+
const body = await this.postJson('/installed/is-installed', { allocationId, bundleId });
|
|
57
|
+
return body.installed;
|
|
58
|
+
}
|
|
59
|
+
async recordAppInstalled(allocationId, bundleId) {
|
|
60
|
+
await this.postJson('/installed/record', { allocationId, bundleId });
|
|
61
|
+
}
|
|
62
|
+
postJson(path, body) {
|
|
63
|
+
return new Promise((resolve, reject) => {
|
|
64
|
+
const url = new URL(path, this.baseUrl);
|
|
65
|
+
const req = request({
|
|
66
|
+
method: 'POST',
|
|
67
|
+
host: url.hostname,
|
|
68
|
+
port: url.port,
|
|
69
|
+
path: url.pathname,
|
|
70
|
+
agent: this.agent,
|
|
71
|
+
headers: { 'content-type': 'application/json' },
|
|
72
|
+
}, (res) => {
|
|
73
|
+
const chunks = [];
|
|
74
|
+
res.on('data', (c) => chunks.push(c));
|
|
75
|
+
res.on('end', () => {
|
|
76
|
+
const text = Buffer.concat(chunks).toString('utf8');
|
|
77
|
+
if (res.statusCode !== 200) {
|
|
78
|
+
reject(new Error(`HTTP ${res.statusCode}: ${text}`));
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
resolve(text.length === 0 ? {} : JSON.parse(text));
|
|
82
|
+
});
|
|
83
|
+
res.on('error', reject);
|
|
84
|
+
});
|
|
85
|
+
req.on('error', reject);
|
|
86
|
+
req.write(JSON.stringify(body));
|
|
87
|
+
req.end();
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=http-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/device-pool/adapters/http-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.test.d.ts","sourceRoot":"","sources":["../../../src/device-pool/adapters/http-client.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { test, expect } from '@playwright/test';
|
|
2
|
+
import { DevicePool } from '../application/device-pool.js';
|
|
3
|
+
import { DevicePoolHttpServer } from './http-server.js';
|
|
4
|
+
import { HttpDevicePoolClient } from './http-client.js';
|
|
5
|
+
function makeAllocator(devices) {
|
|
6
|
+
let i = 0;
|
|
7
|
+
return {
|
|
8
|
+
async allocate() { return devices[i++ % devices.length]; },
|
|
9
|
+
async release() { },
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
async function startServerAndClient(pool) {
|
|
13
|
+
const server = new DevicePoolHttpServer({ pool });
|
|
14
|
+
const port = await server.listen();
|
|
15
|
+
const url = `http://127.0.0.1:${port}`;
|
|
16
|
+
return {
|
|
17
|
+
url,
|
|
18
|
+
client: new HttpDevicePoolClient({ baseUrl: url }),
|
|
19
|
+
stop: () => server.close(),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
test('client.allocate returns a handle from the server', async () => {
|
|
23
|
+
const pool = new DevicePool({
|
|
24
|
+
allocator: makeAllocator([{ deviceId: 'd1', platform: 'ios' }]),
|
|
25
|
+
maxSlots: 1,
|
|
26
|
+
});
|
|
27
|
+
const { client, stop } = await startServerAndClient(pool);
|
|
28
|
+
try {
|
|
29
|
+
const handle = await client.allocate({ platform: 'ios' });
|
|
30
|
+
expect(handle.deviceId).toBe('d1');
|
|
31
|
+
expect(handle.allocationId).toMatch(/^alloc-/);
|
|
32
|
+
await client.release(handle.allocationId);
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
await stop();
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
test('client.release frees the device for a subsequent allocate', async () => {
|
|
39
|
+
const pool = new DevicePool({
|
|
40
|
+
allocator: makeAllocator([{ deviceId: 'd1', platform: 'ios' }]),
|
|
41
|
+
maxSlots: 1,
|
|
42
|
+
});
|
|
43
|
+
const { client, stop } = await startServerAndClient(pool);
|
|
44
|
+
try {
|
|
45
|
+
const first = await client.allocate({ platform: 'ios' });
|
|
46
|
+
await client.release(first.allocationId);
|
|
47
|
+
const second = await client.allocate({ platform: 'ios' });
|
|
48
|
+
expect(second.deviceId).toBe('d1');
|
|
49
|
+
await client.release(second.allocationId);
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
await stop();
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
test('install-tracking round-trip via client', async () => {
|
|
56
|
+
const pool = new DevicePool({
|
|
57
|
+
allocator: makeAllocator([{ deviceId: 'd1', platform: 'ios' }]),
|
|
58
|
+
maxSlots: 1,
|
|
59
|
+
});
|
|
60
|
+
const { client, stop } = await startServerAndClient(pool);
|
|
61
|
+
try {
|
|
62
|
+
const handle = await client.allocate({ platform: 'ios' });
|
|
63
|
+
expect(await client.isAppInstalled(handle.allocationId, 'a.ipa')).toBe(false);
|
|
64
|
+
await client.recordAppInstalled(handle.allocationId, 'a.ipa');
|
|
65
|
+
expect(await client.isAppInstalled(handle.allocationId, 'a.ipa')).toBe(true);
|
|
66
|
+
await client.release(handle.allocationId);
|
|
67
|
+
}
|
|
68
|
+
finally {
|
|
69
|
+
await stop();
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=http-client.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.test.js","sourceRoot":"","sources":["../../../src/device-pool/adapters/http-client.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { DevicePool } from '../application/device-pool.js';
|
|
2
|
+
export interface DevicePoolHttpServerOptions {
|
|
3
|
+
pool: DevicePool;
|
|
4
|
+
}
|
|
5
|
+
export declare class DevicePoolHttpServer {
|
|
6
|
+
private readonly pool;
|
|
7
|
+
private readonly server;
|
|
8
|
+
private readonly responsesByAllocationId;
|
|
9
|
+
constructor(options: DevicePoolHttpServerOptions);
|
|
10
|
+
listen(): Promise<number>;
|
|
11
|
+
close(): Promise<void>;
|
|
12
|
+
private handle;
|
|
13
|
+
private handleIsAppInstalled;
|
|
14
|
+
private handleRecordAppInstalled;
|
|
15
|
+
private handleShutdown;
|
|
16
|
+
private handleAllocate;
|
|
17
|
+
private handleRelease;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=http-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../../../src/device-pool/adapters/http-server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAgBhE,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAqC;gBAEjE,OAAO,EAAE,2BAA2B;IAK1C,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAczB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAWd,MAAM;YAkBN,oBAAoB;YAOpB,wBAAwB;YAOxB,cAAc;YAMd,cAAc;YAyBd,aAAa;CAW5B"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { createServer } from 'node:http';
|
|
2
|
+
export class DevicePoolHttpServer {
|
|
3
|
+
constructor(options) {
|
|
4
|
+
this.responsesByAllocationId = new Map();
|
|
5
|
+
this.pool = options.pool;
|
|
6
|
+
this.server = createServer((req, res) => this.handle(req, res));
|
|
7
|
+
}
|
|
8
|
+
async listen() {
|
|
9
|
+
return new Promise((resolve, reject) => {
|
|
10
|
+
this.server.once('error', reject);
|
|
11
|
+
this.server.listen(0, '127.0.0.1', () => {
|
|
12
|
+
const address = this.server.address();
|
|
13
|
+
if (typeof address === 'string' || address === null) {
|
|
14
|
+
reject(new Error('expected AddressInfo'));
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
resolve(address.port);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
async close() {
|
|
22
|
+
return new Promise((resolve) => {
|
|
23
|
+
for (const res of this.responsesByAllocationId.values()) {
|
|
24
|
+
res.end();
|
|
25
|
+
res.socket?.destroy();
|
|
26
|
+
}
|
|
27
|
+
this.responsesByAllocationId.clear();
|
|
28
|
+
this.server.close(() => resolve());
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
async handle(req, res) {
|
|
32
|
+
if (req.method !== 'POST') {
|
|
33
|
+
res.statusCode = 405;
|
|
34
|
+
res.end();
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
switch (req.url) {
|
|
38
|
+
case '/allocate':
|
|
39
|
+
await this.handleAllocate(req, res);
|
|
40
|
+
return;
|
|
41
|
+
case '/release':
|
|
42
|
+
await this.handleRelease(req, res);
|
|
43
|
+
return;
|
|
44
|
+
case '/installed/is-installed':
|
|
45
|
+
await this.handleIsAppInstalled(req, res);
|
|
46
|
+
return;
|
|
47
|
+
case '/installed/record':
|
|
48
|
+
await this.handleRecordAppInstalled(req, res);
|
|
49
|
+
return;
|
|
50
|
+
case '/shutdown':
|
|
51
|
+
await this.handleShutdown(req, res);
|
|
52
|
+
return;
|
|
53
|
+
default:
|
|
54
|
+
res.statusCode = 404;
|
|
55
|
+
res.end();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async handleIsAppInstalled(req, res) {
|
|
59
|
+
const body = await readJson(req);
|
|
60
|
+
const installed = this.pool.isAppInstalled(body.allocationId, body.bundleId);
|
|
61
|
+
res.statusCode = 200;
|
|
62
|
+
res.end(JSON.stringify({ installed }));
|
|
63
|
+
}
|
|
64
|
+
async handleRecordAppInstalled(req, res) {
|
|
65
|
+
const body = await readJson(req);
|
|
66
|
+
this.pool.recordAppInstalled(body.allocationId, body.bundleId);
|
|
67
|
+
res.statusCode = 200;
|
|
68
|
+
res.end(JSON.stringify({ ok: true }));
|
|
69
|
+
}
|
|
70
|
+
async handleShutdown(_req, res) {
|
|
71
|
+
await this.pool.shutdown();
|
|
72
|
+
res.statusCode = 200;
|
|
73
|
+
res.end(JSON.stringify({ ok: true }));
|
|
74
|
+
}
|
|
75
|
+
async handleAllocate(req, res) {
|
|
76
|
+
const body = await readJson(req);
|
|
77
|
+
let handle;
|
|
78
|
+
try {
|
|
79
|
+
handle = await this.pool.allocate(body.criteria ?? {});
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
res.statusCode = 503;
|
|
83
|
+
res.end(JSON.stringify({ error: err.message }));
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
this.responsesByAllocationId.set(handle.allocationId, res);
|
|
87
|
+
const onClose = () => {
|
|
88
|
+
if (this.responsesByAllocationId.get(handle.allocationId) === res) {
|
|
89
|
+
this.responsesByAllocationId.delete(handle.allocationId);
|
|
90
|
+
void this.pool.release(handle.allocationId);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
res.on('close', onClose);
|
|
94
|
+
res.statusCode = 200;
|
|
95
|
+
res.setHeader('content-type', 'application/x-ndjson');
|
|
96
|
+
res.write(JSON.stringify(handle) + '\n');
|
|
97
|
+
}
|
|
98
|
+
async handleRelease(req, res) {
|
|
99
|
+
const body = await readJson(req);
|
|
100
|
+
await this.pool.release(body.allocationId);
|
|
101
|
+
const heldResponse = this.responsesByAllocationId.get(body.allocationId);
|
|
102
|
+
if (heldResponse) {
|
|
103
|
+
this.responsesByAllocationId.delete(body.allocationId);
|
|
104
|
+
heldResponse.end();
|
|
105
|
+
}
|
|
106
|
+
res.statusCode = 200;
|
|
107
|
+
res.end(JSON.stringify({ ok: true }));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
function readJson(req) {
|
|
111
|
+
return new Promise((resolve, reject) => {
|
|
112
|
+
const chunks = [];
|
|
113
|
+
req.on('data', (chunk) => chunks.push(chunk));
|
|
114
|
+
req.on('end', () => {
|
|
115
|
+
try {
|
|
116
|
+
const text = Buffer.concat(chunks).toString('utf8');
|
|
117
|
+
resolve(text.length === 0 ? {} : JSON.parse(text));
|
|
118
|
+
}
|
|
119
|
+
catch (err) {
|
|
120
|
+
reject(err);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
req.on('error', reject);
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=http-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../../../src/device-pool/adapters/http-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-server.test.d.ts","sourceRoot":"","sources":["../../../src/device-pool/adapters/http-server.test.ts"],"names":[],"mappings":""}
|