dom-testing-library icon indicating copy to clipboard operation
dom-testing-library copied to clipboard

Behavior of waitForElementToBeRemoved when first call throws

Open make-github-pseudonymous-again opened this issue 3 years ago • 1 comments

  • @testing-library/dom version: 8.11.2

Problem description:

There is currently no exception catching for the initial call inside waitForElementToBeRemoved. When that call of callback throws, instead of getting the error Error('The element(s) given to waitForElementToBeRemoved are already removed...') we will get the error thrown from the callback, even when it is a TestingLibraryElementError. This contradicts the documented behavior:

waitForElementToBeRemoved(() => getByText(/not here/i)).catch(err =>
  console.log(err),
)
// Error: The element(s) given to waitForElementToBeRemoved are already removed. waitForElementToBeRemoved requires that the element(s) exist(s) before waiting for removal.

Suggested solution:

See #1094.

This contradicts the documented behavior:

The documentation is contradicting itself already. It only says that it'll throw on null or empty arrays. But it doesn't say that () => null will throw. However, it later includes waitForElementToBeRemoved(() => getByText(/not here/i)) in the examples.

So documentation should be clarified as well.

eps1lon avatar Jan 25 '22 10:01 eps1lon