UNPKG

2.87 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.expectNoHiddenParents = exports.flushPromises = exports.mockEvent = exports.renderIntoDocument = exports.mountAttached = exports.delay = exports.expectMissing = exports.expectOne = exports.expectNodes = exports.findNodes = void 0;
4var enzyme_1 = require("enzyme");
5var ReactDOM = require("react-dom");
6var ReactTestUtils = require("react-dom/test-utils");
7function findNodes(wrapper, className) {
8 return wrapper.find(className).filterWhere(function (node) { return typeof node.type() === 'string'; });
9}
10exports.findNodes = findNodes;
11function expectNodes(wrapper, className, n) {
12 expect(findNodes(wrapper, className).length).toEqual(n);
13}
14exports.expectNodes = expectNodes;
15function expectOne(wrapper, className) {
16 expectNodes(wrapper, className, 1);
17}
18exports.expectOne = expectOne;
19function expectMissing(wrapper, className) {
20 expectNodes(wrapper, className, 0);
21}
22exports.expectMissing = expectMissing;
23/** @deprecated Use fake timers and `jest.runAllTimers()` instead */
24function delay(millisecond) {
25 return new Promise(function (resolve) { return setTimeout(resolve, millisecond); });
26}
27exports.delay = delay;
28/**
29 * Mounts the element attached to a child of document.body. This is primarily for tests involving
30 * event handlers (which don't work right unless the element is attached).
31 * @deprecated Use `safeMount` from `@fluentui/test-utilities` instead
32 */
33function mountAttached(element) {
34 var parent = document.createElement('div');
35 document.body.appendChild(parent);
36 return enzyme_1.mount(element, { attachTo: parent });
37}
38exports.mountAttached = mountAttached;
39function renderIntoDocument(element) {
40 var component = ReactTestUtils.renderIntoDocument(element);
41 var renderedDOM = ReactDOM.findDOMNode(component);
42 return renderedDOM;
43}
44exports.renderIntoDocument = renderIntoDocument;
45function mockEvent(targetValue) {
46 if (targetValue === void 0) { targetValue = ''; }
47 var target = { value: targetValue };
48 return { target: target };
49}
50exports.mockEvent = mockEvent;
51/**
52 * Hack for forcing Jest to run pending promises
53 * https://github.com/facebook/jest/issues/2157#issuecomment-279171856
54 */
55function flushPromises() {
56 // TODO: in jest 27, change to `new Promise(process.nextTick)` per https://stackoverflow.com/a/51045733
57 return new Promise(function (resolve) { return setImmediate(resolve); });
58}
59exports.flushPromises = flushPromises;
60/**
61 * Verify that the given element and its parents do NOT have `aria-hidden` set.
62 */
63function expectNoHiddenParents(element) {
64 var el = element;
65 while (el) {
66 expect(el.getAttribute('aria-hidden')).not.toBe('true');
67 el = el.parentElement;
68 }
69}
70exports.expectNoHiddenParents = expectNoHiddenParents;
71//# sourceMappingURL=testUtilities.js.map
\No newline at end of file