@mechris3/glassbox 0.1.33 → 0.1.35
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 +1 -15
- package/dist/src/runner/run-journey.js +7 -1
- package/dist/src/runner/run-journey.js.map +1 -1
- package/dist/src/runner/spawn-journey.d.ts +4 -0
- package/dist/src/runner/spawn-journey.d.ts.map +1 -1
- package/dist/src/runner/spawn-journey.js +11 -1
- package/dist/src/runner/spawn-journey.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -139,16 +139,6 @@ Extend `BasePage` — no constructor needed. The following methods are available
|
|
|
139
139
|
| `clearSession(origin?)` | Clear cookies and storage |
|
|
140
140
|
| `readClipboard()` | Read text from clipboard |
|
|
141
141
|
|
|
142
|
-
**Important:** Glassbox runs your files as native ESM (via `--import tsx`). Imports from `@mechris3/glassbox` work as-is, but **relative imports between your own files must use `.js` extensions** — even though the source files are `.ts`. This is how Node's ESM loader resolves TypeScript:
|
|
143
|
-
|
|
144
|
-
```typescript
|
|
145
|
-
// ✅ Correct — .js extension on relative import
|
|
146
|
-
import { LoginPage } from '../page-objects/login.page.js';
|
|
147
|
-
|
|
148
|
-
// ❌ Wrong — will fail at runtime with extensionless path
|
|
149
|
-
import { LoginPage } from '../page-objects/login.page';
|
|
150
|
-
```
|
|
151
|
-
|
|
152
142
|
Example:
|
|
153
143
|
|
|
154
144
|
```typescript
|
|
@@ -182,7 +172,7 @@ Extend `Journey` — use `this.page()` to create page objects:
|
|
|
182
172
|
```typescript
|
|
183
173
|
// journeys/login.journey.ts
|
|
184
174
|
import { Journey } from '@mechris3/glassbox';
|
|
185
|
-
import { LoginPage } from '../page-objects/login.page
|
|
175
|
+
import { LoginPage } from '../page-objects/login.page';
|
|
186
176
|
|
|
187
177
|
export class LoginJourney extends Journey {
|
|
188
178
|
loginPage = this.page(LoginPage);
|
|
@@ -413,10 +403,6 @@ Requires `glassbox serve` to be running. The AI gets these tools:
|
|
|
413
403
|
|
|
414
404
|
The AI can identify journeys by name (`"login"`), ID (`"login-and-add-todos"`), or full path. After a failure, the browser stays open so `getDomSnapshot` and `getScreenshot` can inspect the failed state.
|
|
415
405
|
|
|
416
|
-
## Gotchas
|
|
417
|
-
|
|
418
|
-
- **Missing `.js` extensions on relative imports:** Glassbox spawns journeys in a child process using native ESM (`--import tsx` with `import()`). Node's ESM loader requires file extensions on relative paths. If you see `"Journey export must be a class with execute() method or a function"` at runtime, the most likely cause is a relative import without a `.js` extension. Package imports (`from '@mechris3/glassbox'`) don't need extensions — only your own file-to-file imports do.
|
|
419
|
-
|
|
420
406
|
## License
|
|
421
407
|
|
|
422
408
|
Proprietary. All rights reserved.
|
|
@@ -156,8 +156,14 @@ async function importJourney(journeyPath) {
|
|
|
156
156
|
* Function-based: exports a function that receives the adapter.
|
|
157
157
|
*/
|
|
158
158
|
async function executeJourney(module, adapter) {
|
|
159
|
+
// Handle CJS interop: when import() wraps a CJS module, named exports
|
|
160
|
+
// end up nested under module.default as a plain object
|
|
161
|
+
let resolved = module;
|
|
162
|
+
if (module.default && typeof module.default === 'object' && !Array.isArray(module.default)) {
|
|
163
|
+
resolved = module.default;
|
|
164
|
+
}
|
|
159
165
|
// Find the journey export — check default first, then named exports
|
|
160
|
-
const journeyExport =
|
|
166
|
+
const journeyExport = resolved.default ?? findJourneyExport(resolved);
|
|
161
167
|
if (!journeyExport) {
|
|
162
168
|
throw new Error('Journey file must export a class with execute() method or a function');
|
|
163
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-journey.js","sourceRoot":"","sources":["../../../src/runner/run-journey.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"run-journey.js","sourceRoot":"","sources":["../../../src/runner/run-journey.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
* Both the server-driven TestExecutor and the CLI batch runner need to spawn
|
|
5
5
|
* a child process per journey with identical environment setup. This module
|
|
6
6
|
* is the single source of truth for that logic.
|
|
7
|
+
*
|
|
8
|
+
* Uses tsx as the runner binary (not --import tsx) so that consumer projects
|
|
9
|
+
* don't need "type": "module" or .js extensions on relative imports — tsx
|
|
10
|
+
* owns the entire module resolution pipeline.
|
|
7
11
|
*/
|
|
8
12
|
import { type ChildProcess } from 'child_process';
|
|
9
13
|
export interface SpawnJourneyOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-journey.d.ts","sourceRoot":"","sources":["../../../src/runner/spawn-journey.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"spawn-journey.d.ts","sourceRoot":"","sources":["../../../src/runner/spawn-journey.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAGzD,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,OAAO,EAAE,YAAY,CAAC;IACtB,mEAAmE;IACnE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3B;AAWD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,cAAc,CAyBzE"}
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
* Both the server-driven TestExecutor and the CLI batch runner need to spawn
|
|
6
6
|
* a child process per journey with identical environment setup. This module
|
|
7
7
|
* is the single source of truth for that logic.
|
|
8
|
+
*
|
|
9
|
+
* Uses tsx as the runner binary (not --import tsx) so that consumer projects
|
|
10
|
+
* don't need "type": "module" or .js extensions on relative imports — tsx
|
|
11
|
+
* owns the entire module resolution pipeline.
|
|
8
12
|
*/
|
|
9
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
14
|
exports.spawnJourney = spawnJourney;
|
|
@@ -12,6 +16,11 @@ const child_process_1 = require("child_process");
|
|
|
12
16
|
const path_1 = require("path");
|
|
13
17
|
/** Path to the runner entry point — resolved from this module's location. */
|
|
14
18
|
const RUNNER_ENTRY = (0, path_1.resolve)(__dirname, 'run-journey.js');
|
|
19
|
+
/** Resolve the tsx CLI binary from our own dependencies. */
|
|
20
|
+
function resolveTsxBin() {
|
|
21
|
+
const tsxPkgPath = require.resolve('tsx/package.json');
|
|
22
|
+
return (0, path_1.resolve)((0, path_1.dirname)(tsxPkgPath), 'dist', 'cli.mjs');
|
|
23
|
+
}
|
|
15
24
|
/**
|
|
16
25
|
* Spawn a journey runner child process with the correct environment.
|
|
17
26
|
* Returns the process handle and a promise for the exit code.
|
|
@@ -27,7 +36,8 @@ function spawnJourney(options) {
|
|
|
27
36
|
ACTION_DELAY: String(options.actionDelay),
|
|
28
37
|
TEST_BREAKPOINTS: JSON.stringify(options.breakpoints),
|
|
29
38
|
};
|
|
30
|
-
const
|
|
39
|
+
const tsxBin = resolveTsxBin();
|
|
40
|
+
const child = (0, child_process_1.spawn)(process.execPath, [tsxBin, RUNNER_ENTRY], {
|
|
31
41
|
env,
|
|
32
42
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
33
43
|
cwd: process.cwd(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-journey.js","sourceRoot":"","sources":["../../../src/runner/spawn-journey.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"spawn-journey.js","sourceRoot":"","sources":["../../../src/runner/spawn-journey.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AA0CH,oCAyBC;AAjED,iDAAyD;AACzD,+BAAwC;AA0BxC,6EAA6E;AAC7E,MAAM,YAAY,GAAG,IAAA,cAAO,EAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAE1D,4DAA4D;AAC5D,SAAS,aAAa;IACpB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACvD,OAAO,IAAA,cAAO,EAAC,IAAA,cAAO,EAAC,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,OAA4B;IACvD,MAAM,GAAG,GAA2B;QAClC,GAAG,OAAO,CAAC,GAA6B;QACxC,qBAAqB,EAAE,OAAO,CAAC,WAAW;QAC1C,oBAAoB,EAAE,OAAO,CAAC,UAAU;QACxC,WAAW,EAAE,OAAO,CAAC,SAAS;QAC9B,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;QAC7C,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;QAC/C,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;QACzC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC;KACtD,CAAC;IAEF,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE;QAC5D,GAAG;QACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;KACnB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QAC/C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACtC,CAAC"}
|
package/package.json
CHANGED