Rejct toWarnDev if given callback throws (#26003)

## Summary

Should unblock https://github.com/facebook/react/pull/25970
If the callback for `toWarnDev` was `async` and threw, we didn't
ultimately reject the await Promise from the matcher. This resulted in
tests failing even though the failure was expected due to a test gate.

## How did you test this change?

- [x] tested in https://github.com/facebook/react/pull/25970 with `yarn
test --r=stable --env=development
packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js --watch`
- [x] `yarn test`
- [x] CI
This commit is contained in:
Sebastian Silbermann
2023-01-15 18:57:59 +01:00
committed by GitHub
parent 0e31dd028e
commit 4f8ffec453

View File

@@ -270,15 +270,20 @@ const createMatcherFor = (consoleMethod, matcherName) =>
// Once `act(async () => {}).then(() => {}).then(() => {})` works
// we can just return `result.then(onFinally, error => ...)`
returnPromise = new Promise((resolve, reject) => {
result.then(
() => {
resolve(onFinally());
},
error => {
caughtError = error;
return resolve(onFinally());
}
);
result
.then(
() => {
resolve(onFinally());
},
error => {
caughtError = error;
return resolve(onFinally());
}
)
// In case onFinally throws we need to reject from this matcher
.catch(error => {
reject(error);
});
});
}
} catch (error) {