mirror of
https://github.com/zebrajr/react.git
synced 2026-01-15 12:15:22 +00:00
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:
committed by
GitHub
parent
0e31dd028e
commit
4f8ffec453
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user