| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | 
							- import * as React from 'react';
 
- import ReactDOM, { findDOMNode } from 'react-dom';
 
- import AutoSizer from '../autoSizer';
 
- function render(markup) {
 
-   if (!render._mountNode) {
 
-     render._mountNode = document.createElement('div');
 
-     // Unless we attach the mount-node to body, getBoundingClientRect() won't work
 
-     document.body.appendChild(render._mountNode);
 
-     afterEach(render.unmount);
 
-     // window.ResizeObserver = ResizeObserver;
 
-   }
 
-   return ReactDOM.render(markup, render._mountNode);
 
- }
 
- render.unmount = function () {
 
-   if (render._mountNode) {
 
-     ReactDOM.unmountComponentAtNode(render._mountNode);
 
-     document.body.removeChild(render._mountNode);
 
-     render._mountNode = null;
 
-   }
 
- };
 
- describe('AutoSizer', () => {
 
-   function getAutoSizer({
 
-     defaultHeight = undefined,
 
-     defaultWidth = undefined,
 
-     height = 100,
 
-     width = 200,
 
-   } = {}) {
 
-     const wrapperStyle = {
 
-       boxSizing: 'border-box',
 
-       height,
 
-       width,
 
-     };
 
-     mockOffsetSize(width, height);
 
-     return (
 
-       <div style={wrapperStyle}>
 
-         <AutoSizer
 
-           defaultHeight={defaultHeight}
 
-           defaultWidth={defaultWidth}
 
-         >
 
-           {({ height, width }) => (
 
-             <div style={{
 
-               width,
 
-               height,
 
-             }}>
 
-               {`width:${width}, height:${height}`}
 
-             </div>
 
-           )}
 
-         </AutoSizer>
 
-       </div>
 
-     );
 
-   }
 
-   // AutoSizer uses offsetWidth and offsetHeight.
 
-   // Jest runs in JSDom which doesn't support measurements APIs.
 
-   // refer to https://github.com/bvaughn/react-virtualized-auto-sizer/blob/master/src/__tests__/AutoSizer.js
 
-   function mockOffsetSize(width, height) {
 
-     Object.defineProperty(HTMLElement.prototype, 'offsetHeight', {
 
-       configurable: true,
 
-       value: height,
 
-     });
 
-   }
 
-   it('should set the correct initial width and height of ChildComponent or React child', () => {
 
-     const rendered = findDOMNode(render(getAutoSizer()));
 
-     // TODO
 
-     // expect(rendered.textContent).toContain('height:100');
 
-     // expect(rendered.textContent).toContain('width:100%');
 
-   });
 
-   async function simulateResize({ element, height, width }) {
 
-     mockOffsetSize(width, height);
 
-     window.dispatchEvent(new Event('resize'));
 
-     // Allow requestAnimationFrame to be invoked before continuing
 
-     await new Promise(resolve => setTimeout(resolve, 100));
 
-   }
 
-   it('should update :height after a resize event', async done => {
 
-     const rendered = findDOMNode(
 
-       render(
 
-         getAutoSizer({
 
-           height: 100,
 
-         }),
 
-       ),
 
-     );
 
-     // expect(rendered.textContent).toContain('height:100');
 
-     await simulateResize({ element: rendered, height: 400, });
 
-     // TODO
 
-     // expect(rendered.textContent).toContain('height:400');
 
-     done();
 
-   });
 
- });
 
 
  |