Correctly restore MatrixClientPeg after each test case

pull/21833/head
Richard van der Hoff 2016-04-07 16:47:17 +01:00
parent b64604964d
commit a2168efcda
3 changed files with 30 additions and 7 deletions

View File

@ -3,16 +3,21 @@ var TestUtils = require('react-addons-test-utils');
var expect = require('expect');
var sdk = require('matrix-react-sdk');
var MatrixChat = sdk.getComponent('structures.MatrixChat');
var peg = require('../../../src/MatrixClientPeg');
var test_utils = require('../../test-utils');
var peg = require('../../../src/MatrixClientPeg.js');
var q = require('q');
describe('MatrixChat', function () {
var MatrixChat;
before(function() {
test_utils.stubClient();
MatrixChat = sdk.getComponent('structures.MatrixChat');
var sandbox;
beforeEach(function() {
sandbox = test_utils.stubClient();
});
afterEach(function() {
sandbox.restore();
});
it('gives a login panel by default', function () {

View File

@ -27,12 +27,19 @@ var test_utils = require('test-utils');
var mockclock = require('mock-clock');
describe('MessagePanel', function () {
var sandbox;
var clock = mockclock.clock();
var realSetTimeout = window.setTimeout;
var events = mkEvents();
beforeEach(function() {
test_utils.beforeEach(this);
sandbox = test_utils.stubClient(sandbox);
});
afterEach(function () {
clock.uninstall();
sandbox.restore();
});
function mkEvents() {

View File

@ -21,12 +21,23 @@ module.exports.beforeEach = function(context) {
/**
* Stub out the MatrixClient, and configure the MatrixClientPeg object to
* return it when get() is called.
*
* @returns {sinon.Sandbox}; remember to call sandbox.restore afterwards.
*/
module.exports.stubClient = function() {
var pegstub = sinon.stub(peg);
var sandbox = sinon.sandbox.create();
// 'sandbox.restore()' doesn't work correctly on inherited methods,
// so we do this for each method
var methods = ['get', 'unset', 'replaceUsingUrls',
'replaceUsingAccessToken'];
for (var i = 0; i < methods.length; i++) {
sandbox.stub(peg, methods[i]);
}
var matrixClientStub = sinon.createStubInstance(jssdk.MatrixClient);
pegstub.get.returns(matrixClientStub);
peg.get.returns(matrixClientStub);
return sandbox;
}