@specwise/runner 0.2.0 → 0.2.2

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 CHANGED
@@ -70,7 +70,7 @@ Options:
70
70
  async function main() {
71
71
  const args = parseArgs(process.argv);
72
72
  console.log("");
73
- console.log(" \x1b[1m@specwise/runner\x1b[0m v0.2.0");
73
+ console.log(" \x1b[1m@specwise/runner\x1b[0m v0.2.1");
74
74
  console.log(" ─────────────────────────");
75
75
  console.log("");
76
76
  const client = new SpecwiseAPI(args.api, args.token);
@@ -107,9 +107,19 @@ export async function runDiscovery(api, projectId, startUrl) {
107
107
  if (url === "about:blank" || capturedUrls.has(url))
108
108
  return;
109
109
  try {
110
- await p.waitForLoadState("domcontentloaded", { timeout: 5000 });
111
- await p.waitForTimeout(500); // let JS render
112
- const elements = await p.evaluate(EXTRACT_ELEMENTS_JS);
110
+ // Wait for SPA to fully render — network idle + DOM has interactive elements
111
+ await p.waitForLoadState("networkidle", { timeout: 15000 }).catch(() => { });
112
+ await p.waitForTimeout(2000); // extra buffer for JS frameworks to render
113
+ // Wait until at least one interactive element exists (SPA content loaded)
114
+ await p.waitForSelector("input, button, a[href], select, textarea, [role='button']", { timeout: 10000 }).catch(() => { });
115
+ // Retry element extraction — some SPAs render in multiple passes
116
+ let elements = [];
117
+ for (let attempt = 0; attempt < 3; attempt++) {
118
+ elements = await p.evaluate(EXTRACT_ELEMENTS_JS);
119
+ if (elements.length > 0)
120
+ break;
121
+ await p.waitForTimeout(1500);
122
+ }
113
123
  const links = await p.evaluate(EXTRACT_LINKS_JS);
114
124
  const title = await p.title();
115
125
  await api.submitPage(projectId, {
@@ -223,9 +233,13 @@ export async function runDiscovery(api, projectId, startUrl) {
223
233
  // Wait for user to close browser or Ctrl+C
224
234
  log("\nBrowse your app now. Each page will be captured automatically.");
225
235
  log("Close the browser window or press Ctrl+C when done.\n");
236
+ let stopping = false;
226
237
  await new Promise((resolve) => {
227
238
  browser.on("disconnected", () => resolve());
228
239
  process.on("SIGINT", async () => {
240
+ if (stopping)
241
+ return; // prevent double trigger
242
+ stopping = true;
229
243
  log("\nStopping discovery...");
230
244
  clearInterval(actionPollInterval);
231
245
  await browser.close().catch(() => { });
@@ -233,25 +247,31 @@ export async function runDiscovery(api, projectId, startUrl) {
233
247
  });
234
248
  });
235
249
  clearInterval(actionPollInterval);
236
- // Submit recorded flow
237
- if (recordedActions.length > 0) {
238
- log(`\nSaving recorded flow (${recordedActions.length} actions)...`);
239
- try {
240
- await api.submitFlow(projectId, {
241
- steps: recordedActions,
242
- start_url: startUrl || recordedActions[0]?.url || "",
243
- });
244
- log("\x1b[32mFlow saved!\x1b[0m");
245
- }
246
- catch (err) {
247
- log(`\x1b[31mFailed to save flow: ${err instanceof Error ? err.message : err}\x1b[0m`);
250
+ // Save flow and pages — prevent process exit until done
251
+ const cleanup = async () => {
252
+ if (recordedActions.length > 0) {
253
+ log(`Saving recorded flow (${recordedActions.length} actions)...`);
254
+ try {
255
+ await api.submitFlow(projectId, {
256
+ steps: recordedActions,
257
+ start_url: startUrl || recordedActions[0]?.url || "",
258
+ });
259
+ log("\x1b[32mFlow saved!\x1b[0m");
260
+ }
261
+ catch (err) {
262
+ log(`\x1b[31mFailed to save flow: ${err instanceof Error ? err.message : err}\x1b[0m`);
263
+ }
248
264
  }
249
- }
250
- console.log("");
251
- console.log(" ─────────────────────────");
252
- console.log(` \x1b[1mDiscovery complete\x1b[0m`);
253
- console.log(` \x1b[32m${pagesCaptured} pages captured\x1b[0m`);
254
- console.log(` ${recordedActions.length} actions recorded`);
255
- console.log("");
265
+ console.log("");
266
+ console.log(" ─────────────────────────");
267
+ console.log(` \x1b[1mDiscovery complete\x1b[0m`);
268
+ console.log(` \x1b[32m${pagesCaptured} pages captured\x1b[0m`);
269
+ console.log(` ${recordedActions.length} actions recorded`);
270
+ console.log("");
271
+ };
272
+ // Block SIGINT from killing process until cleanup is done
273
+ process.removeAllListeners("SIGINT");
274
+ process.on("SIGINT", () => { }); // ignore further Ctrl+C
275
+ await cleanup();
256
276
  }
257
277
  //# sourceMappingURL=discoverer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discoverer.js","sourceRoot":"","sources":["../src/discoverer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discoverer.js","sourceRoot":"","sources":["../src/discoverer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specwise/runner",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Local test runner for Specwise — executes test cases on your machine with Playwright",
5
5
  "type": "module",
6
6
  "bin": {
@@ -13,7 +13,12 @@
13
13
  "start": "node dist/cli.js",
14
14
  "postinstall": "npx playwright install chromium --with-deps 2>/dev/null || true"
15
15
  },
16
- "keywords": ["specwise", "testing", "playwright", "automation"],
16
+ "keywords": [
17
+ "specwise",
18
+ "testing",
19
+ "playwright",
20
+ "automation"
21
+ ],
17
22
  "license": "MIT",
18
23
  "publishConfig": {
19
24
  "access": "public"