@ohos-ports/floss 5.0.1-beta.2 → 5.0.1-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.
- package/lib/browser-runner.js +6 -1
- package/lib/index.js +9 -15
- package/package.json +1 -1
package/lib/browser-runner.js
CHANGED
|
@@ -460,7 +460,12 @@ function runInBrowser(opts) {
|
|
|
460
460
|
await closeBrowser();
|
|
461
461
|
|
|
462
462
|
// ── 16. Return result ──
|
|
463
|
-
if (result.
|
|
463
|
+
if (result.total === 0) {
|
|
464
|
+
reject(new Error(
|
|
465
|
+
"No tests executed in browser. Test files likely use require() " +
|
|
466
|
+
"which is not available in browser context."
|
|
467
|
+
));
|
|
468
|
+
} else if (result.failures > 0) {
|
|
464
469
|
reject(new Error(
|
|
465
470
|
"Mocha tests failed: " + result.failures +
|
|
466
471
|
" failure(s) out of " + (result.total || "unknown") + " test(s)."
|
package/lib/index.js
CHANGED
|
@@ -54,25 +54,19 @@ function floss(options) {
|
|
|
54
54
|
// Level 3: Error — no runner available
|
|
55
55
|
|
|
56
56
|
// Level 1: Try browser-runner (海泰浏览器 + CDP)
|
|
57
|
+
// Level 2: Fall back to node-runner (jsdom) on any failure
|
|
57
58
|
try {
|
|
58
59
|
const browserRunner = require('./browser-runner');
|
|
59
|
-
return browserRunner.runInBrowser(opts)
|
|
60
|
-
|
|
61
|
-
catch (browserErr) {
|
|
62
|
-
// Level 2: Try node-runner (jsdom)
|
|
63
|
-
try {
|
|
60
|
+
return browserRunner.runInBrowser(opts).catch((browserErr) => {
|
|
61
|
+
// Browser runner failed (launch error, 0 tests, or timeout)
|
|
64
62
|
const nodeRunner = require('./node-runner');
|
|
65
63
|
return nodeRunner.runInNode(opts);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
' Node runner (jsdom) failed: ' + nodeErr.message + '\n' +
|
|
73
|
-
'Install \'electron\' alongside Floss, or ensure hdc + browser or jsdom is available.'
|
|
74
|
-
);
|
|
75
|
-
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
catch (browserErr) {
|
|
67
|
+
// require('./browser-runner') failed synchronously
|
|
68
|
+
const nodeRunner = require('./node-runner');
|
|
69
|
+
return nodeRunner.runInNode(opts);
|
|
76
70
|
}
|
|
77
71
|
}
|
|
78
72
|
const app = path.join(__dirname, 'main');
|