@mobilewright/test 0.0.26 → 0.0.28

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/README.md CHANGED
@@ -8,7 +8,7 @@ Framework for mobile device automation, inspired by Playwright's architecture an
8
8
 
9
9
  **Mobilewright** targets iOS and Android devices, simulators, and emulators through a clean, auto-waiting API built on top of [mobilecli](https://github.com/mobile-next/mobilecli).
10
10
 
11
- [Get Started](#quick-start) · [API Docs](#api-reference) · [Cloud (mobile-use.com)](https://mobile-use.com)
11
+ [Get Started](#quick-start) · [API Docs](#api-reference) · [Roadmap](ROADMAP.md) · [Cloud (mobile-use.com)](https://mobile-use.com)
12
12
 
13
13
  ## Why Mobilewright?
14
14
 
@@ -3,12 +3,10 @@ import type { Device, Screen } from '@mobilewright/core';
3
3
  type MobilewrightTestFixtures = {
4
4
  screen: Screen;
5
5
  bundleId: string | undefined;
6
- };
7
- type MobilewrightWorkerFixtures = {
8
6
  platform: 'ios' | 'android' | undefined;
9
7
  deviceName: RegExp | undefined;
10
8
  device: Device;
11
9
  };
12
- export declare const test: import("playwright/test").TestType<import("playwright/test").PlaywrightTestArgs & import("playwright/test").PlaywrightTestOptions & MobilewrightTestFixtures, import("playwright/test").PlaywrightWorkerArgs & import("playwright/test").PlaywrightWorkerOptions & MobilewrightWorkerFixtures>;
10
+ export declare const test: import("playwright/test").TestType<import("playwright/test").PlaywrightTestArgs & import("playwright/test").PlaywrightTestOptions & MobilewrightTestFixtures, import("playwright/test").PlaywrightWorkerArgs & import("playwright/test").PlaywrightWorkerOptions>;
13
11
  export { expect };
14
12
  //# sourceMappingURL=fixtures.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEzD,KAAK,wBAAwB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;IACxC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,IAAI,gSAsEf,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAezD,KAAK,wBAAwB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;IACxC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAUF,eAAO,MAAM,IAAI,mQAuGf,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,CAAC"}
package/dist/fixtures.js CHANGED
@@ -1,30 +1,84 @@
1
1
  import { test as base } from '@playwright/test';
2
- import { mkdir, readFile, unlink } from 'node:fs/promises';
2
+ import { createWriteStream } from 'node:fs';
3
+ import { mkdir, unlink } from 'node:fs/promises';
4
+ import { pipeline } from 'node:stream/promises';
5
+ import { Readable } from 'node:stream';
3
6
  import { join } from 'node:path';
4
- import { ios, android, loadConfig } from 'mobilewright';
7
+ import createDebug from 'debug';
8
+ import { createDevicePoolClient, connectDevice, loadConfig, toArray, } from 'mobilewright';
5
9
  import { expect } from '@mobilewright/core';
10
+ const debug = createDebug('mw:test:fixtures');
11
+ async function attachVideo(testInfo, url, localPath) {
12
+ if (url) {
13
+ const response = await fetch(url);
14
+ if (!response.ok) {
15
+ throw new Error(`Failed to download recording: ${response.status} ${response.statusText}`);
16
+ }
17
+ await pipeline(Readable.fromWeb(response.body), createWriteStream(localPath));
18
+ }
19
+ await testInfo.attach('video', { path: localPath, contentType: 'video/mp4' });
20
+ }
21
+ let cachedClient;
22
+ function getClient() {
23
+ if (!cachedClient) {
24
+ cachedClient = createDevicePoolClient();
25
+ }
26
+ return cachedClient;
27
+ }
6
28
  export const test = base.extend({
7
29
  bundleId: [async ({}, use) => {
8
30
  const config = await loadConfig();
9
31
  await use(config.bundleId);
10
32
  }, { option: true }],
11
- platform: [undefined, { option: true, scope: 'worker' }],
12
- deviceName: [undefined, { option: true, scope: 'worker' }],
13
- device: [async ({ platform, deviceName }, use) => {
14
- const config = await loadConfig();
15
- const merged = {
16
- ...config,
17
- ...(platform && { platform }),
18
- ...(deviceName && { deviceName }),
19
- };
20
- if (merged.platform && merged.platform !== 'ios' && merged.platform !== 'android') {
21
- throw new Error(`Unsupported platform: "${merged.platform}". Must be "ios" or "android".`);
33
+ platform: [undefined, { option: true }],
34
+ deviceName: [undefined, { option: true }],
35
+ device: async ({ platform, deviceName, bundleId }, use) => {
36
+ const config = await loadConfig();
37
+ const merged = {
38
+ ...config,
39
+ ...(platform && { platform }),
40
+ ...(deviceName && { deviceName }),
41
+ };
42
+ if (merged.platform !== 'ios' && merged.platform !== 'android') {
43
+ throw new Error(`Unsupported platform: "${merged.platform}". Must be "ios" or "android".`);
44
+ }
45
+ const client = getClient();
46
+ const handle = await client.allocate({
47
+ platform: merged.platform,
48
+ deviceNamePattern: merged.deviceName?.source,
49
+ deviceId: merged.deviceId,
50
+ });
51
+ const device = await connectDevice({
52
+ platform: handle.platform,
53
+ deviceId: handle.deviceId,
54
+ driverConfig: merged.driver,
55
+ url: merged.url,
56
+ timeout: merged.timeout,
57
+ });
58
+ try {
59
+ for (const appPath of toArray(merged.installApps)) {
60
+ const installed = await client.isAppInstalled(handle.allocationId, appPath);
61
+ if (!installed) {
62
+ await device.installApp(appPath);
63
+ await client.recordAppInstalled(handle.allocationId, appPath);
64
+ }
65
+ }
66
+ if (bundleId) {
67
+ try {
68
+ await device.terminateApp(bundleId);
69
+ }
70
+ catch {
71
+ // app may not be running
72
+ }
73
+ await device.launchApp(bundleId);
22
74
  }
23
- const launcher = merged.platform === 'android' ? android : ios;
24
- const device = await launcher.launch(merged);
25
75
  await use(device);
26
- await device.close();
27
- }, { scope: 'worker' }],
76
+ }
77
+ finally {
78
+ await device.disconnect();
79
+ await client.release(handle.allocationId);
80
+ }
81
+ },
28
82
  screen: async ({ device, video }, use, testInfo) => {
29
83
  const videoMode = typeof video === 'object' ? video.mode : video;
30
84
  const shouldRecord = videoMode === 'on' || videoMode === 'retain-on-failure';
@@ -37,23 +91,22 @@ export const test = base.extend({
37
91
  await device.startRecording({ output: videoPath });
38
92
  }
39
93
  catch {
40
- // Recording may not be supported — continue without it
94
+ // recording may not be supported — continue without it
41
95
  }
42
96
  }
43
97
  await use(device.screen);
44
98
  if (shouldRecord) {
45
99
  try {
46
- await device.stopRecording();
100
+ const result = await device.stopRecording();
47
101
  const failed = testInfo.status !== testInfo.expectedStatus;
48
102
  const shouldAttach = videoMode === 'on' || (videoMode === 'retain-on-failure' && failed);
49
103
  if (shouldAttach) {
50
- const videoBuffer = await readFile(videoPath);
51
- await testInfo.attach('video', { body: videoBuffer, contentType: 'video/mp4' });
104
+ await attachVideo(testInfo, result.url, result.output ?? videoPath);
52
105
  }
53
106
  await unlink(videoPath).catch(() => { });
54
107
  }
55
- catch {
56
- // Best effort — recording may have failed to start
108
+ catch (err) {
109
+ debug('video attach failed: %o', err);
57
110
  }
58
111
  }
59
112
  if (testInfo.status !== testInfo.expectedStatus) {
@@ -62,7 +115,7 @@ export const test = base.extend({
62
115
  await testInfo.attach('screenshot-on-failure', { body: screenshot, contentType: 'image/png' });
63
116
  }
64
117
  catch {
65
- // Device may be disconnected
118
+ // device may be disconnected
66
119
  }
67
120
  }
68
121
  },
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mobilewright/test",
3
- "version": "0.0.26",
3
+ "version": "0.0.28",
4
4
  "description": "Test fixtures for Mobilewright",
5
5
  "homepage": "https://mobilewright.dev",
6
6
  "license": "Apache-2.0",
@@ -29,8 +29,10 @@
29
29
  "dist"
30
30
  ],
31
31
  "dependencies": {
32
- "@mobilewright/core": "^0.0.26",
33
- "@mobilewright/protocol": "^0.0.26",
34
- "@playwright/test": "1.58.2"
32
+ "@mobilewright/core": "^0.0.28",
33
+ "@mobilewright/protocol": "^0.0.28",
34
+ "@playwright/test": "1.58.2",
35
+ "debug": "^4.4.3",
36
+ "mobilewright": "^0.0.28"
35
37
  }
36
38
  }