vona-cli-set-api 1.1.128 → 1.1.129
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/index.js +6 -9
- package/dist-toolsIsolate/test.js +50 -21
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -991,15 +991,12 @@ class CliBinTest extends BeanCliBase {
|
|
|
991
991
|
}
|
|
992
992
|
args = args.concat([getImportEsm(), testFile, projectPath, (!!argv.coverage).toString(), patterns.join(',')]);
|
|
993
993
|
// args = args.concat(['--experimental-transform-types', getImportEsm(), testFile, projectPath, (!!argv.coverage).toString(), patterns.join(',')]);
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
cwd: projectPath
|
|
1001
|
-
}
|
|
1002
|
-
});
|
|
994
|
+
await this.helper.spawnExe({
|
|
995
|
+
cmd: 'node',
|
|
996
|
+
args,
|
|
997
|
+
options: {
|
|
998
|
+
cwd: projectPath
|
|
999
|
+
}
|
|
1003
1000
|
});
|
|
1004
1001
|
}
|
|
1005
1002
|
async _outputCoverageReportViewer(projectPath) {
|
|
@@ -59,9 +59,27 @@ async function testRun(projectPath, coverage, patterns) {
|
|
|
59
59
|
];
|
|
60
60
|
// app
|
|
61
61
|
const app = await createGeneralApp(projectPath);
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
let testError;
|
|
63
|
+
let closeError;
|
|
64
|
+
let closePromise;
|
|
65
|
+
const closeApplication = async () => {
|
|
66
|
+
const [_, error] = await catchError(() => app.close());
|
|
67
|
+
closeError = error;
|
|
68
|
+
// handles
|
|
69
|
+
if (process.env.TEST_WHYISNODERUNNING === 'true') {
|
|
70
|
+
await sleep(2000);
|
|
71
|
+
const handles = process._getActiveHandles();
|
|
72
|
+
if (handles.length > 3) {
|
|
73
|
+
whyIsNodeRunning();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
const closeApplicationOnce = () => {
|
|
78
|
+
return (closePromise ??= closeApplication());
|
|
79
|
+
};
|
|
80
|
+
try {
|
|
81
|
+
// concurrency
|
|
82
|
+
const concurrency = await prepareConcurrency(app);
|
|
65
83
|
const testStream = run({
|
|
66
84
|
isolation: 'none',
|
|
67
85
|
concurrency,
|
|
@@ -76,27 +94,12 @@ async function testRun(projectPath, coverage, patterns) {
|
|
|
76
94
|
.on('test:coverage', data => {
|
|
77
95
|
outputCoverageReport(data.summary.totals);
|
|
78
96
|
})
|
|
79
|
-
.on('test:
|
|
80
|
-
resolve(undefined);
|
|
81
|
-
})
|
|
82
|
-
.on('test:pass', async (t) => {
|
|
97
|
+
.on('test:pass', t => {
|
|
83
98
|
if (t.name === '---done---') {
|
|
84
|
-
|
|
85
|
-
return app.close();
|
|
86
|
-
});
|
|
87
|
-
if (err) {
|
|
88
|
-
console.error(err);
|
|
89
|
-
}
|
|
90
|
-
// handles
|
|
91
|
-
if (process.env.TEST_WHYISNODERUNNING === 'true') {
|
|
92
|
-
await sleep(2000);
|
|
93
|
-
const handles = process._getActiveHandles();
|
|
94
|
-
if (handles.length > 3) {
|
|
95
|
-
whyIsNodeRunning();
|
|
96
|
-
}
|
|
97
|
-
}
|
|
99
|
+
void closeApplicationOnce();
|
|
98
100
|
}
|
|
99
101
|
});
|
|
102
|
+
const summaryPromise = waitForTestSummary(testStream);
|
|
100
103
|
if (coverage) {
|
|
101
104
|
const reporterDir = path.join(projectPath, 'coverage');
|
|
102
105
|
fse.ensureDirSync(reporterDir);
|
|
@@ -106,6 +109,32 @@ async function testRun(projectPath, coverage, patterns) {
|
|
|
106
109
|
else {
|
|
107
110
|
testStream.compose(spec).pipe(process.stdout);
|
|
108
111
|
}
|
|
112
|
+
const summarySuccess = await summaryPromise;
|
|
113
|
+
if (!summarySuccess) {
|
|
114
|
+
throw new Error('node:test reported failed tests');
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
testError = error;
|
|
119
|
+
}
|
|
120
|
+
finally {
|
|
121
|
+
await closeApplicationOnce();
|
|
122
|
+
}
|
|
123
|
+
if (testError) {
|
|
124
|
+
if (closeError)
|
|
125
|
+
console.error(closeError);
|
|
126
|
+
throw toError(testError);
|
|
127
|
+
}
|
|
128
|
+
if (closeError) {
|
|
129
|
+
throw toError(closeError);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
function toError(error) {
|
|
133
|
+
return error instanceof Error ? error : new Error(String(error));
|
|
134
|
+
}
|
|
135
|
+
function waitForTestSummary(testStream) {
|
|
136
|
+
return new Promise((resolve, reject) => {
|
|
137
|
+
testStream.once('test:summary', summary => resolve(summary.success)).once('error', reject);
|
|
109
138
|
});
|
|
110
139
|
}
|
|
111
140
|
async function prepareConcurrency(app) {
|
package/package.json
CHANGED