1
0
mirror of https://github.com/matrix-org/matrix-react-sdk.git synced 2025-07-30 02:21:17 +03:00

Inject MatrixClient into React context in tests

Now that EventTile expects MatrixClient in the context, we had better provide
it.
This commit is contained in:
Richard van der Hoff
2016-11-14 18:20:15 +00:00
parent 0e8a49ebb7
commit 22757cfcd3
3 changed files with 83 additions and 37 deletions

View File

@ -33,6 +33,24 @@ var test_utils = require('test-utils');
var ROOM_ID = '!room:localhost';
var USER_ID = '@me:localhost';
// wrap TimelinePanel with a component which provides the MatrixClient in the context.
const WrappedTimelinePanel = React.createClass({
childContextTypes: {
matrixClient: React.PropTypes.object,
},
getChildContext: function() {
return {
matrixClient: peg.get(),
};
},
render: function() {
return <TimelinePanel ref="panel" {...this.props} />;
},
});
describe('TimelinePanel', function() {
var sandbox;
var timelineSet;
@ -105,11 +123,12 @@ describe('TimelinePanel', function() {
}
var scrollDefer;
var panel = ReactDOM.render(
<TimelinePanel timelineSet={timelineSet} onScroll={() => {scrollDefer.resolve()}}
var rendered = ReactDOM.render(
<WrappedTimelinePanel timelineSet={timelineSet} onScroll={() => {scrollDefer.resolve()}}
/>,
parentDiv,
);
var panel = rendered.refs.panel;
var scrollingDiv = ReactTestUtils.findRenderedDOMComponentWithClass(
panel, "gm-scroll-view");
@ -188,10 +207,11 @@ describe('TimelinePanel', function() {
return q(true);
});
var panel = ReactDOM.render(
<TimelinePanel timelineSet={timelineSet}/>,
var rendered = ReactDOM.render(
<WrappedTimelinePanel timelineSet={timelineSet}/>,
parentDiv
);
var panel = rendered.refs.panel;
var messagePanel = ReactTestUtils.findRenderedComponentWithType(
panel, sdk.getComponent('structures.MessagePanel'));
@ -236,14 +256,14 @@ describe('TimelinePanel', function() {
console.log("added events to timeline");
var scrollDefer;
var panel = ReactDOM.render(
<TimelinePanel timelineSet={timelineSet} onScroll={() => {scrollDefer.resolve()}}
var rendered = ReactDOM.render(
<WrappedTimelinePanel timelineSet={timelineSet} onScroll={() => {scrollDefer.resolve()}}
timelineCap={TIMELINE_CAP}
/>,
parentDiv
);
console.log("TimelinePanel rendered");
var panel = rendered.refs.panel;
var messagePanel = ReactTestUtils.findRenderedComponentWithType(
panel, sdk.getComponent('structures.MessagePanel'));
var scrollingDiv = ReactTestUtils.findRenderedDOMComponentWithClass(