@mobilewright/core 0.0.40 → 0.0.42
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/device.d.ts +4 -0
- package/dist/device.d.ts.map +1 -1
- package/dist/device.js +13 -2
- package/dist/device.js.map +1 -1
- package/dist/expect.d.ts +82 -11
- package/dist/expect.d.ts.map +1 -1
- package/dist/expect.js +181 -22
- package/dist/expect.js.map +1 -1
- package/dist/expect.test.js +17 -0
- package/dist/expect.test.js.map +1 -1
- package/dist/fake-webview-session.d.ts +14 -0
- package/dist/fake-webview-session.d.ts.map +1 -0
- package/dist/fake-webview-session.js +26 -0
- package/dist/fake-webview-session.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/locator.d.ts +8 -5
- package/dist/locator.d.ts.map +1 -1
- package/dist/locator.js +5 -6
- package/dist/locator.js.map +1 -1
- package/dist/locator.test.js +178 -0
- package/dist/locator.test.js.map +1 -1
- package/dist/page.d.ts +52 -0
- package/dist/page.d.ts.map +1 -0
- package/dist/page.js +226 -0
- package/dist/page.js.map +1 -0
- package/dist/page.test.d.ts +2 -0
- package/dist/page.test.d.ts.map +1 -0
- package/dist/page.test.js +263 -0
- package/dist/page.test.js.map +1 -0
- package/dist/playwright-engine.d.ts +23 -0
- package/dist/playwright-engine.d.ts.map +1 -0
- package/dist/playwright-engine.js +79 -0
- package/dist/playwright-engine.js.map +1 -0
- package/dist/playwright-engine.test.d.ts +2 -0
- package/dist/playwright-engine.test.d.ts.map +1 -0
- package/dist/playwright-engine.test.js +45 -0
- package/dist/playwright-engine.test.js.map +1 -0
- package/dist/query-engine.d.ts +4 -0
- package/dist/query-engine.d.ts.map +1 -1
- package/dist/query-engine.js +15 -0
- package/dist/query-engine.js.map +1 -1
- package/dist/query-engine.test.js +64 -1
- package/dist/query-engine.test.js.map +1 -1
- package/dist/screen.d.ts +7 -0
- package/dist/screen.d.ts.map +1 -1
- package/dist/screen.js +7 -0
- package/dist/screen.js.map +1 -1
- package/dist/stackTrace.d.ts +3 -0
- package/dist/stackTrace.d.ts.map +1 -1
- package/dist/stackTrace.js +10 -0
- package/dist/stackTrace.js.map +1 -1
- package/dist/stackTrace.test.d.ts +2 -0
- package/dist/stackTrace.test.d.ts.map +1 -0
- package/dist/stackTrace.test.js +43 -0
- package/dist/stackTrace.test.js.map +1 -0
- package/dist/web-expect-matcher.d.ts +29 -0
- package/dist/web-expect-matcher.d.ts.map +1 -0
- package/dist/web-expect-matcher.js +23 -0
- package/dist/web-expect-matcher.js.map +1 -0
- package/dist/web-expect-matcher.test.d.ts +2 -0
- package/dist/web-expect-matcher.test.d.ts.map +1 -0
- package/dist/web-expect-matcher.test.js +21 -0
- package/dist/web-expect-matcher.test.js.map +1 -0
- package/dist/web-expect.test.d.ts +2 -0
- package/dist/web-expect.test.d.ts.map +1 -0
- package/dist/web-expect.test.js +93 -0
- package/dist/web-expect.test.js.map +1 -0
- package/dist/web-locator-pwexpect.test.d.ts +2 -0
- package/dist/web-locator-pwexpect.test.d.ts.map +1 -0
- package/dist/web-locator-pwexpect.test.js +36 -0
- package/dist/web-locator-pwexpect.test.js.map +1 -0
- package/dist/web-locator-reinjection.test.d.ts +2 -0
- package/dist/web-locator-reinjection.test.d.ts.map +1 -0
- package/dist/web-locator-reinjection.test.js +83 -0
- package/dist/web-locator-reinjection.test.js.map +1 -0
- package/dist/web-locator.d.ts +120 -0
- package/dist/web-locator.d.ts.map +1 -0
- package/dist/web-locator.js +332 -0
- package/dist/web-locator.js.map +1 -0
- package/dist/web-locator.test.d.ts +2 -0
- package/dist/web-locator.test.d.ts.map +1 -0
- package/dist/web-locator.test.js +424 -0
- package/dist/web-locator.test.js.map +1 -0
- package/dist/webview-locator.d.ts +14 -0
- package/dist/webview-locator.d.ts.map +1 -0
- package/dist/webview-locator.js +95 -0
- package/dist/webview-locator.js.map +1 -0
- package/dist/webview-locator.test.d.ts +2 -0
- package/dist/webview-locator.test.d.ts.map +1 -0
- package/dist/webview-locator.test.js +203 -0
- package/dist/webview-locator.test.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { test, expect as playwrightExpect } from '@playwright/test';
|
|
2
|
+
import { WebViewLocator } from './webview-locator.js';
|
|
3
|
+
import { Locator } from './locator.js';
|
|
4
|
+
import { Page } from './page.js';
|
|
5
|
+
import { fakeWebViewSession } from './fake-webview-session.js';
|
|
6
|
+
// ─── Mock helpers ────────────────────────────────────────────
|
|
7
|
+
// A native webview node as it appears in the view hierarchy.
|
|
8
|
+
function webViewNode() {
|
|
9
|
+
return {
|
|
10
|
+
type: 'android.webkit.WebView',
|
|
11
|
+
isVisible: true,
|
|
12
|
+
isEnabled: true,
|
|
13
|
+
bounds: { x: 0, y: 0, width: 100, height: 100 },
|
|
14
|
+
children: [],
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
// A driver exposing `nativeWebViews` webview nodes in its hierarchy and
|
|
18
|
+
// `bridgeIds` webviews through its webViewBridge.
|
|
19
|
+
function driverWith(opts) {
|
|
20
|
+
const attached = [];
|
|
21
|
+
const roots = Array.from({ length: opts.nativeWebViews }, () => webViewNode());
|
|
22
|
+
const bridge = {
|
|
23
|
+
listWebViews: async () => opts.bridgeIds.map((id) => ({ id, url: 'https://example.com', title: 'Example' })),
|
|
24
|
+
attachWebView: async (id) => {
|
|
25
|
+
attached.push(id);
|
|
26
|
+
const { session } = fakeWebViewSession({ url: 'https://example.com', title: 'Example' });
|
|
27
|
+
return session;
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
const driver = {
|
|
31
|
+
getViewHierarchy: async () => roots,
|
|
32
|
+
webViewBridge: bridge,
|
|
33
|
+
};
|
|
34
|
+
return { driver, attached };
|
|
35
|
+
}
|
|
36
|
+
// A native, non-webview node (e.g. a plain button) in the view hierarchy.
|
|
37
|
+
function buttonNode() {
|
|
38
|
+
return {
|
|
39
|
+
type: 'android.widget.Button',
|
|
40
|
+
isVisible: true,
|
|
41
|
+
isEnabled: true,
|
|
42
|
+
bounds: { x: 0, y: 0, width: 100, height: 100 },
|
|
43
|
+
children: [],
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
// A driver whose hierarchy holds the given nodes and whose bridge reports the
|
|
47
|
+
// given webview ids.
|
|
48
|
+
function driverWithNodes(roots, bridgeIds) {
|
|
49
|
+
const attached = [];
|
|
50
|
+
const bridge = {
|
|
51
|
+
listWebViews: async () => bridgeIds.map((id) => ({ id, url: 'https://example.com', title: 'Example' })),
|
|
52
|
+
attachWebView: async (id) => {
|
|
53
|
+
attached.push(id);
|
|
54
|
+
const { session } = fakeWebViewSession({ url: 'https://example.com', title: 'Example' });
|
|
55
|
+
return session;
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
const driver = {
|
|
59
|
+
getViewHierarchy: async () => roots,
|
|
60
|
+
webViewBridge: bridge,
|
|
61
|
+
};
|
|
62
|
+
return { driver, attached };
|
|
63
|
+
}
|
|
64
|
+
// The strategy Screen.getByWebView() builds: every webview in the tree.
|
|
65
|
+
const WEBVIEW_STRATEGY = {
|
|
66
|
+
kind: 'chain',
|
|
67
|
+
parent: { kind: 'root' },
|
|
68
|
+
child: { kind: 'webview' },
|
|
69
|
+
};
|
|
70
|
+
function getByWebView(driver) {
|
|
71
|
+
return new WebViewLocator(driver, WEBVIEW_STRATEGY, {});
|
|
72
|
+
}
|
|
73
|
+
// ─── Tests ───────────────────────────────────────────────────
|
|
74
|
+
test.describe('WebViewLocator.page() resolution', () => {
|
|
75
|
+
test('attaches the matching webview when exactly one resolves', async () => {
|
|
76
|
+
const { driver, attached } = driverWith({ nativeWebViews: 1, bridgeIds: ['wv-1'] });
|
|
77
|
+
const page = await getByWebView(driver).page();
|
|
78
|
+
playwrightExpect(page instanceof Page).toBe(true);
|
|
79
|
+
playwrightExpect(attached).toEqual(['wv-1']);
|
|
80
|
+
});
|
|
81
|
+
test('throws when the locator resolves to more than one webview', async () => {
|
|
82
|
+
const { driver } = driverWith({ nativeWebViews: 2, bridgeIds: ['a', 'b'] });
|
|
83
|
+
await playwrightExpect(getByWebView(driver).page()).rejects.toThrow(/did not resolve to a single webview/);
|
|
84
|
+
});
|
|
85
|
+
test('throws when the resolved index is out of range of the bridge webviews', async () => {
|
|
86
|
+
// Two native webviews but only one bridge webview: .last() maps to index 1,
|
|
87
|
+
// which must throw rather than clamp to the first/last bridge webview.
|
|
88
|
+
const { driver } = driverWith({ nativeWebViews: 2, bridgeIds: ['only-one'] });
|
|
89
|
+
await playwrightExpect(getByWebView(driver).last().page()).rejects.toThrow(/out of range/);
|
|
90
|
+
});
|
|
91
|
+
test('first() attaches the first webview', async () => {
|
|
92
|
+
const { driver, attached } = driverWith({ nativeWebViews: 2, bridgeIds: ['wv-0', 'wv-1'] });
|
|
93
|
+
const page = await getByWebView(driver).first().page();
|
|
94
|
+
playwrightExpect(page instanceof Page).toBe(true);
|
|
95
|
+
playwrightExpect(attached).toEqual(['wv-0']);
|
|
96
|
+
});
|
|
97
|
+
test('nth() attaches the webview at the given index', async () => {
|
|
98
|
+
const { driver, attached } = driverWith({ nativeWebViews: 3, bridgeIds: ['wv-0', 'wv-1', 'wv-2'] });
|
|
99
|
+
const page = await getByWebView(driver).nth(2).page();
|
|
100
|
+
playwrightExpect(page instanceof Page).toBe(true);
|
|
101
|
+
playwrightExpect(attached).toEqual(['wv-2']);
|
|
102
|
+
});
|
|
103
|
+
test('throws when the driver has no webViewBridge', async () => {
|
|
104
|
+
const driver = {
|
|
105
|
+
getViewHierarchy: async () => [],
|
|
106
|
+
webViewBridge: undefined,
|
|
107
|
+
};
|
|
108
|
+
await playwrightExpect(getByWebView(driver).page()).rejects.toThrow(/does not have a webViewBridge/);
|
|
109
|
+
});
|
|
110
|
+
test('throws when the bridge reports no webviews', async () => {
|
|
111
|
+
const { driver } = driverWith({ nativeWebViews: 1, bridgeIds: [] });
|
|
112
|
+
await playwrightExpect(getByWebView(driver).page()).rejects.toThrow(/no webviews available/);
|
|
113
|
+
});
|
|
114
|
+
test('caches the page so a second page() call does not re-attach', async () => {
|
|
115
|
+
const { driver, attached } = driverWith({ nativeWebViews: 1, bridgeIds: ['wv-0'] });
|
|
116
|
+
const locator = getByWebView(driver);
|
|
117
|
+
const first = await locator.page();
|
|
118
|
+
const second = await locator.page();
|
|
119
|
+
playwrightExpect(second).toBe(first);
|
|
120
|
+
playwrightExpect(attached).toEqual(['wv-0']);
|
|
121
|
+
});
|
|
122
|
+
test('throws when the resolved node is not among the native webviews', async () => {
|
|
123
|
+
// The hierarchy has a webview node, but the locator strategy resolves to a
|
|
124
|
+
// single non-webview node — so it cannot be mapped to a bridge webview.
|
|
125
|
+
const { driver } = driverWithNodes([webViewNode(), buttonNode()], ['wv-0']);
|
|
126
|
+
const locator = new WebViewLocator(driver, { kind: 'type', value: 'android.widget.Button' }, {});
|
|
127
|
+
await playwrightExpect(locator.page()).rejects.toThrow(/not among the native webviews/);
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
test.describe('WebViewLocator chaining', () => {
|
|
131
|
+
test('chaining into a DOM locator returns a plain Locator, not a WebViewLocator', async () => {
|
|
132
|
+
const { driver } = driverWith({ nativeWebViews: 1, bridgeIds: ['wv-0'] });
|
|
133
|
+
const child = getByWebView(driver).getByText('Submit');
|
|
134
|
+
playwrightExpect(child instanceof Locator).toBe(true);
|
|
135
|
+
playwrightExpect(child).not.toBeInstanceOf(WebViewLocator);
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
// A webview node carrying a native testId (accessibility id / resource-id).
|
|
139
|
+
function webViewNodeWithTestId(testId) {
|
|
140
|
+
return { ...webViewNode(), identifier: testId };
|
|
141
|
+
}
|
|
142
|
+
function getByWebViewWithTestId(driver, testId) {
|
|
143
|
+
return new WebViewLocator(driver, { kind: 'chain', parent: { kind: 'root' }, child: { kind: 'webview', testId } }, {});
|
|
144
|
+
}
|
|
145
|
+
test.describe('getByWebView({ testId })', () => {
|
|
146
|
+
test('attaches the webview whose native testId matches', async () => {
|
|
147
|
+
// Two native webviews; only the second carries testId "checkout".
|
|
148
|
+
const { driver, attached } = driverWithNodes([webViewNode(), webViewNodeWithTestId('checkout')], ['wv-0', 'wv-1']);
|
|
149
|
+
const page = await getByWebViewWithTestId(driver, 'checkout').page();
|
|
150
|
+
playwrightExpect(page instanceof Page).toBe(true);
|
|
151
|
+
playwrightExpect(attached).toEqual(['wv-1']);
|
|
152
|
+
});
|
|
153
|
+
test('throws when no webview has the given testId', async () => {
|
|
154
|
+
const { driver } = driverWithNodes([webViewNode(), webViewNode()], ['wv-0', 'wv-1']);
|
|
155
|
+
await playwrightExpect(getByWebViewWithTestId(driver, 'missing').page())
|
|
156
|
+
.rejects.toThrow(/did not resolve to a single webview/);
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
test.describe('getByWebView() with no native webview nodes', () => {
|
|
160
|
+
test('attaches the only bridge webview when the hierarchy exposes none', async () => {
|
|
161
|
+
const { driver, attached } = driverWith({ nativeWebViews: 0, bridgeIds: ['only'] });
|
|
162
|
+
const page = await getByWebView(driver).page();
|
|
163
|
+
playwrightExpect(page instanceof Page).toBe(true);
|
|
164
|
+
playwrightExpect(attached).toEqual(['only']);
|
|
165
|
+
});
|
|
166
|
+
test('throws rather than silently attaching index 0 when several exist', async () => {
|
|
167
|
+
const { driver } = driverWith({ nativeWebViews: 0, bridgeIds: ['a', 'b'] });
|
|
168
|
+
await playwrightExpect(getByWebView(driver).page()).rejects.toThrow(/cannot disambiguate/);
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
test.describe('WebViewLocator session cleanup', () => {
|
|
172
|
+
test('closes the session when engine injection fails', async () => {
|
|
173
|
+
let closed = false;
|
|
174
|
+
const session = {
|
|
175
|
+
evaluate: async () => { throw new Error('inject failed'); },
|
|
176
|
+
goto: async () => { },
|
|
177
|
+
goBack: async () => { },
|
|
178
|
+
goForward: async () => { },
|
|
179
|
+
url: async () => '',
|
|
180
|
+
title: async () => '',
|
|
181
|
+
reload: async () => { },
|
|
182
|
+
waitForLoadState: async () => { },
|
|
183
|
+
close: async () => { closed = true; },
|
|
184
|
+
};
|
|
185
|
+
const driver = {
|
|
186
|
+
getViewHierarchy: async () => [webViewNode()],
|
|
187
|
+
webViewBridge: {
|
|
188
|
+
listWebViews: async () => [{ id: 'wv', url: '', title: '' }],
|
|
189
|
+
attachWebView: async () => session,
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
let threw = false;
|
|
193
|
+
try {
|
|
194
|
+
await getByWebView(driver).page();
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
threw = true;
|
|
198
|
+
}
|
|
199
|
+
playwrightExpect(threw).toBe(true);
|
|
200
|
+
playwrightExpect(closed).toBe(true);
|
|
201
|
+
});
|
|
202
|
+
});
|
|
203
|
+
//# sourceMappingURL=webview-locator.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webview-locator.test.js","sourceRoot":"","sources":["../src/webview-locator.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mobilewright/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.42",
|
|
4
4
|
"description": "Core API for Mobilewright mobile automation",
|
|
5
5
|
"homepage": "https://mobilewright.dev",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -29,8 +29,9 @@
|
|
|
29
29
|
"dist"
|
|
30
30
|
],
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@mobilewright/protocol": "^0.0.
|
|
32
|
+
"@mobilewright/protocol": "^0.0.42",
|
|
33
33
|
"debug": "^4.4.3",
|
|
34
|
+
"playwright-core": "1.58.2",
|
|
34
35
|
"sharp": "^0.34.5"
|
|
35
36
|
}
|
|
36
37
|
}
|