"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.expectNoHiddenParents = exports.flushPromises = exports.mockEvent = exports.renderIntoDocument = exports.mountAttached = exports.delay = exports.expectMissing = exports.expectOne = exports.expectNodes = exports.findNodes = void 0; var enzyme_1 = require("enzyme"); var ReactDOM = require("react-dom"); var ReactTestUtils = require("react-dom/test-utils"); function findNodes(wrapper, className) { return wrapper.find(className).filterWhere(function (node) { return typeof node.type() === 'string'; }); } exports.findNodes = findNodes; function expectNodes(wrapper, className, n) { expect(findNodes(wrapper, className).length).toEqual(n); } exports.expectNodes = expectNodes; function expectOne(wrapper, className) { expectNodes(wrapper, className, 1); } exports.expectOne = expectOne; function expectMissing(wrapper, className) { expectNodes(wrapper, className, 0); } exports.expectMissing = expectMissing; /** @deprecated Use fake timers and `jest.runAllTimers()` instead */ function delay(millisecond) { return new Promise(function (resolve) { return setTimeout(resolve, millisecond); }); } exports.delay = delay; /** * Mounts the element attached to a child of document.body. This is primarily for tests involving * event handlers (which don't work right unless the element is attached). * @deprecated Use `safeMount` from `@fluentui/test-utilities` instead */ function mountAttached(element) { var parent = document.createElement('div'); document.body.appendChild(parent); return (0, enzyme_1.mount)(element, { attachTo: parent }); } exports.mountAttached = mountAttached; function renderIntoDocument(element) { var component = ReactTestUtils.renderIntoDocument(element); var renderedDOM = ReactDOM.findDOMNode(component); return renderedDOM; } exports.renderIntoDocument = renderIntoDocument; function mockEvent(targetValue) { if (targetValue === void 0) { targetValue = ''; } var target = { value: targetValue }; return { target: target }; } exports.mockEvent = mockEvent; /** * Hack for forcing Jest to run pending promises * https://github.com/facebook/jest/issues/2157#issuecomment-897935688 */ function flushPromises() { return new Promise(jest.requireActual('timers').setImmediate); } exports.flushPromises = flushPromises; /** * Verify that the given element and its parents do NOT have `aria-hidden` set. */ function expectNoHiddenParents(element) { var el = element; while (el) { expect(el.getAttribute('aria-hidden')).not.toBe('true'); el = el.parentElement; } } exports.expectNoHiddenParents = expectNoHiddenParents; //# sourceMappingURL=testUtilities.js.map