testing: don't apply un-clearable error to test root

This commit is contained in:
Connor Peet 2021-07-26 13:19:17 -07:00
parent f91663e8ed
commit 3f6294b50e
No known key found for this signature in database
GPG key ID: CF8FD2EA0DBC61BD

View file

@ -347,16 +347,22 @@ export class SingleUseTestCollection extends Disposable {
this.pushExpandStateUpdate(internal);
const barrier = internal.resolveBarrier = new Barrier();
const applyError = (err: Error) => {
console.error(`Unhandled error in resolveHandler of test controller "${this.controllerId}"`);
if (internal.actual !== this.root) {
internal.actual.error = err.stack || err.message || String(err);
}
};
let r: Thenable<void> | void;
try {
r = this._resolveHandler(internal.actual === this.root ? undefined : internal.actual);
} catch (err) {
internal.actual.error = err.stack || err.message;
applyError(err);
}
if (isThenable(r)) {
r.catch(err => internal.actual.error = err.stack || err.message).then(() => {
r.catch(applyError).then(() => {
barrier.open();
this.updateExpandability(internal);
});