@testmuai/playwright-bindings 0.1.2 → 0.1.3-beta.3
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executeApi.d.ts","sourceRoot":"","sources":["../../src/helpers/executeApi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"executeApi.d.ts","sourceRoot":"","sources":["../../src/helpers/executeApi.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAc9D;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAM5F;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,GAAG,MAAM,CAO9D;AAGD,MAAM,WAAW,UAAU;IAAG,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAAE;AACxE,MAAM,WAAW,SAAS;IAAI,IAAI,EAAE,OAAO,CAAC;IAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAAE;AAC9F,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE;QACJ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;KAC/B,CAAC;CACH;AACD,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,gBAAgB,GAAG,MAAM,CAAC;AAE/E,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IACzC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAID,wBAAsB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAgLtE"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import { resolveVar } from '../vars.js';
|
|
2
2
|
import { getApiProxyUrl } from '../config.js';
|
|
3
3
|
import { log, preview } from '../log.js';
|
|
4
|
-
// ── Codegen-input normalization helpers ─────────────────────────────────────
|
|
5
|
-
// Mirror PY binding's _do_request: codegen may emit headers/params/auth as
|
|
6
|
-
// JSON-encoded strings (when source-quoted in AST) or VRN-resolved strings
|
|
7
|
-
// (after `await resolveVar(...)`). Normalize on entry so the rest of
|
|
8
|
-
// executeApi can assume well-shaped objects.
|
|
9
4
|
export function parseObject(v) {
|
|
10
5
|
if (v == null)
|
|
11
6
|
return {};
|
|
@@ -44,15 +39,9 @@ export function coerceTimeout(t, def = 30_000) {
|
|
|
44
39
|
}
|
|
45
40
|
function resolve(input) { return resolveVar(input); }
|
|
46
41
|
export async function executeApi(req) {
|
|
47
|
-
// ── Normalize codegen-shaped inputs (PY parity: testmu/_helpers/execute_api.py) ──
|
|
48
|
-
// Codegen may emit headers/params as JSON-encoded strings (when the AST
|
|
49
|
-
// ApiNode field is a source-quoted dict literal or a VRN whose
|
|
50
|
-
// default_value is a JSON string). Parse to dict, resolve templates per
|
|
51
|
-
// value. Timeout may arrive as a stringified int; coerce to number.
|
|
52
42
|
const headers = await resolveDict(parseObject(req.headers));
|
|
53
43
|
const params = await resolveDict(parseObject(req.params));
|
|
54
44
|
const timeout = coerceTimeout(req.timeout);
|
|
55
|
-
// Auth may be a dict OR a JSON-encoded string (PY parity).
|
|
56
45
|
const auth = typeof req.authorization === 'string'
|
|
57
46
|
? (() => {
|
|
58
47
|
try {
|
|
@@ -85,8 +74,16 @@ export async function executeApi(req) {
|
|
|
85
74
|
if (!('User-Agent' in headers) && !('user-agent' in headers)) {
|
|
86
75
|
headers['User-Agent'] = 'Mozilla/5.0';
|
|
87
76
|
}
|
|
77
|
+
// undici fetch rejects any non-null body on GET/HEAD. Also treat ""/{} as
|
|
78
|
+
// "no body" since codegen emits body: "" when the AST body field is blank.
|
|
79
|
+
const _method = (req.method ?? 'GET').toUpperCase();
|
|
80
|
+
const _bodyIsEmpty = req.body === undefined || req.body === null
|
|
81
|
+
|| req.body === ''
|
|
82
|
+
|| (typeof req.body === 'object' && !Array.isArray(req.body)
|
|
83
|
+
&& Object.keys(req.body).length === 0);
|
|
84
|
+
const _allowBody = _method !== 'GET' && _method !== 'HEAD' && !_bodyIsEmpty;
|
|
88
85
|
let body = null;
|
|
89
|
-
if (
|
|
86
|
+
if (_allowBody) {
|
|
90
87
|
const ct = (headers['Content-Type'] || headers['content-type'] || '').toLowerCase();
|
|
91
88
|
if (typeof req.body === 'string' && ct === 'application/x-www-form-urlencoded') {
|
|
92
89
|
const resolvedBody = await resolve(req.body);
|
|
@@ -101,13 +98,8 @@ export async function executeApi(req) {
|
|
|
101
98
|
body = await resolve(req.body);
|
|
102
99
|
}
|
|
103
100
|
else {
|
|
104
|
-
//
|
|
105
|
-
//
|
|
106
|
-
// Shared gap with PY testmu/_helpers/execute_api.py. Codegen path is
|
|
107
|
-
// unaffected (body always arrives as a string from codegen and gets
|
|
108
|
-
// resolved via the resolve() branch above). Hand-written dict bodies
|
|
109
|
-
// with embedded templates would need a recursive walk; tracked in
|
|
110
|
-
// memory/pending-resolve-variable-bugs.md.
|
|
101
|
+
// Templates inside dict-shaped body values are not walked recursively;
|
|
102
|
+
// codegen always passes body as a string so this only affects hand-written calls.
|
|
111
103
|
body = JSON.stringify(req.body);
|
|
112
104
|
if (!headers['content-type'])
|
|
113
105
|
headers['content-type'] = 'application/json';
|
|
@@ -122,7 +114,7 @@ export async function executeApi(req) {
|
|
|
122
114
|
headers['Authorization'] = `Basic ${Buffer.from(`${u}:${p}`).toString('base64')}`;
|
|
123
115
|
}
|
|
124
116
|
else if (auth?.type === 'aws-signature') {
|
|
125
|
-
// Resolve
|
|
117
|
+
// Resolve auth fields first so templated secrets reach aws4 as real creds.
|
|
126
118
|
try {
|
|
127
119
|
const aws4 = (await import('aws4')).default;
|
|
128
120
|
const region = await resolve(auth.data.region ?? 'us-east-1');
|
|
@@ -168,15 +160,22 @@ export async function executeApi(req) {
|
|
|
168
160
|
const started = Date.now();
|
|
169
161
|
const ac = new AbortController();
|
|
170
162
|
const timer = setTimeout(() => ac.abort(), timeout);
|
|
171
|
-
//
|
|
172
|
-
//
|
|
173
|
-
//
|
|
174
|
-
|
|
163
|
+
// verify=false (default) installs an undici Agent / ProxyAgent.requestTls
|
|
164
|
+
// with rejectUnauthorized=false so self-signed certs in the chain don't
|
|
165
|
+
// fail the fetch.
|
|
166
|
+
const verify = req.verify ?? false;
|
|
175
167
|
let dispatcher;
|
|
176
168
|
const proxyUrl = getApiProxyUrl();
|
|
177
169
|
if (proxyUrl) {
|
|
178
170
|
const { ProxyAgent } = await import('undici');
|
|
179
|
-
dispatcher = new ProxyAgent(
|
|
171
|
+
dispatcher = new ProxyAgent({
|
|
172
|
+
uri: proxyUrl,
|
|
173
|
+
...(verify === false ? { requestTls: { rejectUnauthorized: false } } : {}),
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
else if (verify === false) {
|
|
177
|
+
const { Agent } = await import('undici');
|
|
178
|
+
dispatcher = new Agent({ connect: { rejectUnauthorized: false } });
|
|
180
179
|
}
|
|
181
180
|
const fetchOpts = {
|
|
182
181
|
method: req.method,
|
|
@@ -197,7 +196,7 @@ export async function executeApi(req) {
|
|
|
197
196
|
log.helper(`[execute_api] status=${resp.status} time=${elapsed}ms`);
|
|
198
197
|
const respHeaders = {};
|
|
199
198
|
resp.headers.forEach((val, key) => { respHeaders[key] = val; });
|
|
200
|
-
//
|
|
199
|
+
// getSetCookie() is Node >=18.14 / undici 5.25+; fall back to raw header on older runtimes.
|
|
201
200
|
const cookies = {};
|
|
202
201
|
const setCookieFn = resp.headers.getSetCookie;
|
|
203
202
|
const setCookieList = typeof setCookieFn === 'function'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executeApi.js","sourceRoot":"","sources":["../../src/helpers/executeApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC
|
|
1
|
+
{"version":3,"file":"executeApi.js","sourceRoot":"","sources":["../../src/helpers/executeApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kaneCli.d.ts","sourceRoot":"","sources":["../../src/helpers/kaneCli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAevC,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"kaneCli.d.ts","sourceRoot":"","sources":["../../src/helpers/kaneCli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAevC,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA4FjF;AAED,UAAU,aAAa;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,4EAA4E;AAC5E,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,CA+BxB"}
|
package/dist/helpers/kaneCli.js
CHANGED
|
@@ -27,7 +27,6 @@ export async function executeKaneCli(objective, page) {
|
|
|
27
27
|
// NB: PY also checks `pw is None` here (kane_cli.py:60-65) because PY needs the
|
|
28
28
|
// async_playwright() handle for chromium.connect later. JS uses the module-level
|
|
29
29
|
// `chromium` import — no handle needed — so the pw gate has no JS analog.
|
|
30
|
-
const currentUrl = page.url();
|
|
31
30
|
const browser = page.context().browser();
|
|
32
31
|
if (!browser) {
|
|
33
32
|
throw new TestmuConfigError('execute_kane_cli: page has no browser (detached?)');
|
|
@@ -37,52 +36,70 @@ export async function executeKaneCli(objective, page) {
|
|
|
37
36
|
const envName = process.env['TESTMUAI_ENV'] ?? 'prod';
|
|
38
37
|
log.helper(`[execute_kane_cli] objective=${preview(objective, 80)}`);
|
|
39
38
|
log.helper('[execute_kane_cli] handing off browser to kane-cli...');
|
|
40
|
-
//
|
|
39
|
+
// Steps 1-2 (disconnect + spawn) may throw; step 3 (reconnect) must run
|
|
40
|
+
// either way so the LT reporter has a live page for lambdahook updates
|
|
41
|
+
// (lambda-testCase-end, setTestStatus) on the failure path.
|
|
42
|
+
let bodyError = null;
|
|
41
43
|
try {
|
|
42
|
-
|
|
44
|
+
// Step 1: Disconnect from the remote browser but keep it alive via the relay.
|
|
45
|
+
try {
|
|
46
|
+
await browser.close();
|
|
47
|
+
}
|
|
48
|
+
catch (e) {
|
|
49
|
+
log.helper(`[execute_kane_cli] disconnect warning: ${String(e)}`);
|
|
50
|
+
}
|
|
51
|
+
// Step 2: Spawn kane-cli pointing at our relay URL.
|
|
52
|
+
const args = [
|
|
53
|
+
'run', objective,
|
|
54
|
+
'--ws-endpoint', relayUrl,
|
|
55
|
+
'--username', username,
|
|
56
|
+
'--access-key', accessKey,
|
|
57
|
+
'--env', envName,
|
|
58
|
+
'--local',
|
|
59
|
+
'--agent',
|
|
60
|
+
];
|
|
61
|
+
const result = await runKaneCli('kane-cli', args, 600_000);
|
|
62
|
+
if (result.stdout)
|
|
63
|
+
log.helper(`[execute_kane_cli] stdout: ${preview(result.stdout, 2000)}`);
|
|
64
|
+
if (result.stderr)
|
|
65
|
+
log.helper(`[execute_kane_cli] stderr: ${preview(result.stderr, 2000)}`);
|
|
66
|
+
if (result.exitCode !== 0) {
|
|
67
|
+
throw new Error(`kane-cli failed (exit ${result.exitCode}): ${result.stderr}`);
|
|
68
|
+
}
|
|
43
69
|
}
|
|
44
70
|
catch (e) {
|
|
45
|
-
|
|
71
|
+
bodyError = e;
|
|
46
72
|
}
|
|
47
|
-
// Step
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
'
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
73
|
+
// Step 3: Reconnect via the relay (best-effort — runs even if kane-cli failed,
|
|
74
|
+
// so downstream endStep/failTest can reach lambdahook).
|
|
75
|
+
let newPage = null;
|
|
76
|
+
try {
|
|
77
|
+
log.helper('[execute_kane_cli] reconnecting test to relay...');
|
|
78
|
+
const newBrowser = await chromium.connect(relayUrl, { timeout: 120_000 });
|
|
79
|
+
const ctxs = newBrowser.contexts();
|
|
80
|
+
if (ctxs.length > 0) {
|
|
81
|
+
const ctx = ctxs[0];
|
|
82
|
+
const pages = ctx.pages();
|
|
83
|
+
newPage = pages.length > 0 ? pages[pages.length - 1] : await ctx.newPage();
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
const ctx = await newBrowser.newContext();
|
|
87
|
+
newPage = await ctx.newPage();
|
|
88
|
+
}
|
|
89
|
+
log.helper(`[execute_kane_cli] reconnected — page URL: ${newPage.url()}`);
|
|
90
|
+
// Re-wire LT reporter so endStep/failTest land on the live page.
|
|
91
|
+
const rep = _getReporter();
|
|
92
|
+
if (rep instanceof LTReporter)
|
|
93
|
+
rep._setPage(newPage);
|
|
65
94
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const newBrowser = await chromium.connect(relayUrl, { timeout: 120_000 });
|
|
69
|
-
// Step 4: Resolve a page from the reconnected browser.
|
|
70
|
-
let newPage;
|
|
71
|
-
const ctxs = newBrowser.contexts();
|
|
72
|
-
if (ctxs.length > 0) {
|
|
73
|
-
const ctx = ctxs[0];
|
|
74
|
-
const pages = ctx.pages();
|
|
75
|
-
newPage = pages.length > 0 ? pages[pages.length - 1] : await ctx.newPage();
|
|
95
|
+
catch (reconnectErr) {
|
|
96
|
+
log.helper(`[execute_kane_cli] reconnect failed: ${String(reconnectErr)}`);
|
|
76
97
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
98
|
+
if (bodyError !== null)
|
|
99
|
+
throw bodyError;
|
|
100
|
+
if (newPage === null) {
|
|
101
|
+
throw new Error('execute_kane_cli: reconnect failed and no live page available');
|
|
80
102
|
}
|
|
81
|
-
log.helper(`[execute_kane_cli] reconnected — page URL: ${newPage.url()}`);
|
|
82
|
-
// Step 5: Re-wire LT reporter's page reference.
|
|
83
|
-
const rep = _getReporter();
|
|
84
|
-
if (rep instanceof LTReporter)
|
|
85
|
-
rep._setPage(newPage);
|
|
86
103
|
return newPage;
|
|
87
104
|
}
|
|
88
105
|
/** Spawn kane-cli as a subprocess and collect its output with a timeout. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kaneCli.js","sourceRoot":"","sources":["../../src/helpers/kaneCli.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,yEAAyE;AACzE,yEAAyE;AACzE,0EAA0E;AAC1E,4EAA4E;AAC5E,eAAe;AACf,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,SAAiB,EAAE,IAAU;IAChE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1B,GAAG,CAAC,MAAM,CAAC,+DAA+D,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;QACzC,GAAG,CAAC,MAAM,CAAC,6GAA6G,CAAC,CAAC;QAC1H,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;IACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,iBAAiB,CACzB,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IACD,gFAAgF;IAChF,iFAAiF;IACjF,0EAA0E;IAE1E,MAAM,
|
|
1
|
+
{"version":3,"file":"kaneCli.js","sourceRoot":"","sources":["../../src/helpers/kaneCli.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@testmuai/playwright-bindings",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3-beta.3",
|
|
4
4
|
"description": "Testmu binding for Playwright — thin runtime for LambdaTest exports",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -59,6 +59,7 @@
|
|
|
59
59
|
},
|
|
60
60
|
"scripts": {
|
|
61
61
|
"build": "tsc",
|
|
62
|
+
"watch": "tsc --watch",
|
|
62
63
|
"clean": "rm -rf dist",
|
|
63
64
|
"test": "vitest run",
|
|
64
65
|
"test:watch": "vitest",
|