Correctly restore MatrixClientPeg after each test case

This commit is contained in:
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

@ -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;
}