jest/e2e/nested-event-loop/__tests__/nestedEventLoop.test.js

32 lines
771 B
JavaScript

/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @jest-environment jsdom
*/
/* global document */
'use strict';
it('can assert on errors across nested event loops', () => {
const el = document.createElement('div');
el.addEventListener('fake', () => {
throw new Error('This should be caught.');
});
let caught = null;
globalThis.addEventListener('error', e => {
caught = e.error;
});
expect(() => {
const evt = document.createEvent('Event');
evt.initEvent('fake', false, false);
el.dispatchEvent(evt);
if (caught) {
throw caught;
}
}).toThrow('This should be caught.');
});