Merge pull request #1211 from matrix-org/rav/use_react_test_utils
Use matrix-react-test-utils rather than our own implpull/21833/head
						commit
						3093f2d6fb
					
				|  | @ -109,6 +109,7 @@ | |||
|     "karma-mocha": "^0.2.2", | ||||
|     "karma-sourcemap-loader": "^0.3.7", | ||||
|     "karma-webpack": "^1.7.0", | ||||
|     "matrix-react-test-utils": "^0.1.1", | ||||
|     "mocha": "^2.4.5", | ||||
|     "parallelshell": "^1.2.0", | ||||
|     "react-addons-test-utils": "^15.4.0", | ||||
|  |  | |||
|  | @ -20,6 +20,7 @@ import React from 'react'; | |||
| import ReactDOM from 'react-dom'; | ||||
| import ReactTestUtils from 'react-addons-test-utils'; | ||||
| import sinon from 'sinon'; | ||||
| import MatrixReactTestUtils from 'matrix-react-test-utils'; | ||||
| 
 | ||||
| import sdk from 'matrix-react-sdk'; | ||||
| import MatrixClientPeg from '../../../../src/MatrixClientPeg'; | ||||
|  | @ -47,7 +48,7 @@ describe('InteractiveAuthDialog', function () { | |||
|         sandbox.restore(); | ||||
|     }); | ||||
| 
 | ||||
|     it('Should successfully complete a password flow', function(done) { | ||||
|     it('Should successfully complete a password flow', function() { | ||||
|         const onFinished = sinon.spy(); | ||||
|         const doRequest = sinon.stub().returns(q({a:1})); | ||||
| 
 | ||||
|  | @ -69,7 +70,7 @@ describe('InteractiveAuthDialog', function () { | |||
|             />, parentDiv); | ||||
| 
 | ||||
|         // wait for a password box and a submit button
 | ||||
|         test_utils.waitForRenderedDOMComponentWithTag(dlg, "form").then((formNode) => { | ||||
|         return MatrixReactTestUtils.waitForRenderedDOMComponentWithTag(dlg, "form", 2).then((formNode) => { | ||||
|             const inputNodes = ReactTestUtils.scryRenderedDOMComponentsWithTag( | ||||
|                 dlg, "input" | ||||
|             ); | ||||
|  | @ -113,6 +114,6 @@ describe('InteractiveAuthDialog', function () { | |||
|         }).then(() => { | ||||
|             expect(onFinished.callCount).toEqual(1); | ||||
|             expect(onFinished.calledWithExactly(true, {a:1})).toBe(true); | ||||
|         }).done(done, done); | ||||
|         }); | ||||
|     }); | ||||
| }); | ||||
|  |  | |||
|  | @ -2,52 +2,12 @@ | |||
| 
 | ||||
| import sinon from 'sinon'; | ||||
| import q from 'q'; | ||||
| import ReactTestUtils from 'react-addons-test-utils'; | ||||
| 
 | ||||
| import peg from '../src/MatrixClientPeg'; | ||||
| import dis from '../src/dispatcher'; | ||||
| import jssdk from 'matrix-js-sdk'; | ||||
| const MatrixEvent = jssdk.MatrixEvent; | ||||
| 
 | ||||
| /** | ||||
|  * Wrapper around window.requestAnimationFrame that returns a promise | ||||
|  * @private | ||||
|  */ | ||||
| function _waitForFrame() { | ||||
|     const def = q.defer(); | ||||
|     window.requestAnimationFrame(() => { | ||||
|         def.resolve(); | ||||
|     }); | ||||
|     return def.promise; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Waits a small number of animation frames for a component to appear | ||||
|  * in the DOM. Like findRenderedDOMComponentWithTag(), but allows | ||||
|  * for the element to appear a short time later, eg. if a promise needs | ||||
|  * to resolve first. | ||||
|  * @return a promise that resolves once the component appears, or rejects | ||||
|  *     if it doesn't appear after a nominal number of animation frames. | ||||
|  */ | ||||
| export function waitForRenderedDOMComponentWithTag(tree, tag, attempts) { | ||||
|     if (attempts === undefined) { | ||||
|         // Let's start by assuming we'll only need to wait a single frame, and
 | ||||
|         // we can try increasing this if necessary.
 | ||||
|         attempts = 1; | ||||
|     } else if (attempts == 0) { | ||||
|         return q.reject("Gave up waiting for component with tag: " + tag); | ||||
|     } | ||||
| 
 | ||||
|     return _waitForFrame().then(() => { | ||||
|         const result = ReactTestUtils.scryRenderedDOMComponentsWithTag(tree, tag); | ||||
|         if (result.length > 0) { | ||||
|             return result[0]; | ||||
|         } else { | ||||
|             return waitForRenderedDOMComponentWithTag(tree, tag, attempts - 1); | ||||
|         } | ||||
|     }); | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Perform common actions before each test case, e.g. printing the test case | ||||
|  * name to stdout. | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 David Baker
						David Baker