@wordpress/e2e-test-utils
Version:
End-To-End (E2E) test utils for WordPress.
36 lines (34 loc) • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.disableFocusLossObservation = disableFocusLossObservation;
exports.enableFocusLossObservation = enableFocusLossObservation;
/**
* Adds an event listener to the document which throws an error if there is a
* loss of focus.
*/
async function enableFocusLossObservation() {
await page.evaluate(() => {
if (window._detectFocusLoss) {
document.body.removeEventListener('focusout', window._detectFocusLoss);
}
window._detectFocusLoss = event => {
if (!event.relatedTarget) {
throw new Error('Unexpected focus loss');
}
};
document.body.addEventListener('focusout', window._detectFocusLoss);
});
}
/**
* Removes the focus loss listener that `enableFocusLossObservation()` adds.
*/
async function disableFocusLossObservation() {
await page.evaluate(() => {
if (window._detectFocusLoss) {
document.body.removeEventListener('focusout', window._detectFocusLoss);
}
});
}
//# sourceMappingURL=observe-focus-loss.js.map