diff --git a/src/test/all.js b/src/test/all.js index 3549f081b3..1d0b9f5c28 100644 --- a/src/test/all.js +++ b/src/test/all.js @@ -10,7 +10,15 @@ require("mock-modules"); require("./mock-timers"); exports.enableTest = function(testID) { - require("../" + testID); + describe(testID, function() { + beforeEach(function() { + require("mock-modules").setMockMap(mockMap); + }); + + require("mock-modules").clearMockMap(); + require("../" + testID); + var mockMap = require("mock-modules").getMockMap(); + }); }; exports.removeNextSiblings = function(node) { diff --git a/src/test/mock-modules.js b/src/test/mock-modules.js index d8bd57f81a..b6fcd0fe10 100644 --- a/src/test/mock-modules.js +++ b/src/test/mock-modules.js @@ -73,6 +73,28 @@ exports.dumpCache = function() { return exports; }; +exports.getMockMap = function() { + return explicitMockMap; +}; + +exports.clearMockMap = function() { + explicitMockMap = {}; +}; + +exports.setMockMap = function(mockMap) { + exports.dumpCache(); + exports.clearMockMap(); + for (var id in mockMap) { + if (mockMap[id]) { + doMock(id); + } else { + doNotMock(id); + } + } + + return exports; +}; + // Call this function to ensure that require(id) returns the actual // exports object created by the module. function doNotMock(id) {