@@ -18,8 +18,8 @@ describe('react-draggable', function () {
18
18
19
19
afterEach ( function ( ) {
20
20
try {
21
- ReactDOM . findDOMNode ( drag ) ;
22
- drag . componentWillUnmount ( ) ;
21
+ React . unmountComponentAtNode ( React . findDOMNode ( drag ) . parentNode ) ;
22
+ // TestUtils.Simulate.mouseUp(ReactDOM.findDOMNode(drag) );
23
23
} catch ( e ) { return ; }
24
24
} ) ;
25
25
@@ -325,6 +325,32 @@ describe('react-draggable', function () {
325
325
TestUtils . Simulate . mouseUp ( ReactDOM . findDOMNode ( drag ) ) ;
326
326
expect ( drag . state . dragging ) . toEqual ( false ) ;
327
327
} ) ;
328
+
329
+ it ( 'should modulate position on scroll' , function ( done ) {
330
+ // This test fails in karma under PhantomJS & Firefox, scroll event quirks
331
+ var is_chrome = navigator . userAgent . toLowerCase ( ) . indexOf ( 'chrome' ) > - 1 ;
332
+ if ( ! is_chrome ) return done ( ) ;
333
+
334
+ var dragCalled = false ;
335
+
336
+ function onDrag ( e , coreEvent ) {
337
+ expect ( coreEvent . deltaY ) . toEqual ( 500 ) ;
338
+ dragCalled = true ;
339
+ }
340
+ drag = TestUtils . renderIntoDocument ( < Draggable onDrag = { onDrag } > < div /> </ Draggable > ) ;
341
+ var node = ReactDOM . findDOMNode ( drag ) ;
342
+
343
+ TestUtils . Simulate . mouseDown ( ReactDOM . findDOMNode ( drag ) ) ; // start drag so window listener is up
344
+ expect ( drag . state . dragging ) . toEqual ( true ) ;
345
+
346
+ document . body . style . height = '10000px' ;
347
+ window . scrollTo ( 0 , 500 ) ;
348
+ setTimeout ( function ( ) {
349
+ expect ( dragCalled ) . toEqual ( true ) ;
350
+ expect ( drag . state . clientY ) . toEqual ( 500 ) ;
351
+ done ( ) ;
352
+ } , 0 ) ;
353
+ } ) ;
328
354
} ) ;
329
355
330
356
describe ( 'validation' , function ( ) {
0 commit comments