From the documentation, findBy
queries return a Promise. But it seems like using these queries with Promise.prototype.catch()
doesn't work in cases where using them with async/await + try...catch does.
For example, 'not found' gets logged here as expected:
const { screen } = require('@testing-library/dom');
beforeAll(() => {
document.body.innerHTML = `
<header></header>
`;
});
test('DOM', async () => {
try {
await screen.findByRole('aaaaa');
console.log('found');
} catch {
console.log('not found');
}
});
However, nothing gets logged here:
test('DOM', () => {
screen.findByRole('aaaaa')
.then(() => {
console.log('found');
})
.catch(() => {
console.log('not found');
});
});
Is there a reason for this?
question from:
https://stackoverflow.com/questions/65943875/testing-library-findby-queries-only-working-with-async-await 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…