diff --git a/src/event/EventPluginRegistry.js b/src/event/EventPluginRegistry.js index e921c250175d5..f36ca3c3a65d6 100644 --- a/src/event/EventPluginRegistry.js +++ b/src/event/EventPluginRegistry.js @@ -3,6 +3,8 @@ * @typechecks */ +"use strict"; + var invariant = require('invariant'); /** @@ -200,6 +202,27 @@ var EventPluginRegistry = { } } return null; + }, + + /** + * Exposed for unit testing. + * @private + */ + _resetEventPlugins: function() { + EventPluginOrder = null; + for (var pluginName in namesToPlugins) { + if (namesToPlugins.hasOwnProperty(pluginName)) { + delete namesToPlugins[pluginName]; + } + } + EventPluginRegistry.plugins.length = 0; + var registrationNames = EventPluginRegistry.registrationNames; + for (var registrationName in registrationNames) { + if (registrationNames.hasOwnProperty(registrationName)) { + delete registrationNames[registrationName]; + } + } + EventPluginRegistry.registrationNamesKeys.length = 0; } }; diff --git a/src/event/__tests__/EventPluginRegistry-test.js b/src/event/__tests__/EventPluginRegistry-test.js index b27ca280d6c65..c8755c8b38da8 100644 --- a/src/event/__tests__/EventPluginRegistry-test.js +++ b/src/event/__tests__/EventPluginRegistry-test.js @@ -11,8 +11,8 @@ describe('EventPluginRegistry', function() { var createPlugin; beforeEach(function() { - require('mock-modules').dumpCache(); EventPluginRegistry = require('EventPluginRegistry'); + EventPluginRegistry._resetEventPlugins(); createPlugin = function(properties) { return merge({extractEvents: function() {}}, properties); diff --git a/src/eventPlugins/__tests__/AnalyticsEventPlugin-test.js b/src/eventPlugins/__tests__/AnalyticsEventPlugin-test.js index 46718c5afed89..3e54875621322 100644 --- a/src/eventPlugins/__tests__/AnalyticsEventPlugin-test.js +++ b/src/eventPlugins/__tests__/AnalyticsEventPlugin-test.js @@ -24,21 +24,26 @@ var mocks = require('mocks'); describe('AnalyticsEventPlugin', function() { var AnalyticsEventPluginFactory; var EventPluginHub; + var EventPluginRegistry; var React; + var ReactDefaultInjection; var ReactEventEmitter; var ReactEventTopLevelCallback; var ReactTestUtils; beforeEach(function() { - require('mock-modules').dumpCache(); - AnalyticsEventPluginFactory = require('AnalyticsEventPluginFactory'); EventPluginHub = require('EventPluginHub'); + EventPluginRegistry = require('EventPluginRegistry'); React = require('React'); + ReactDefaultInjection = require('ReactDefaultInjection'); ReactEventEmitter = require('ReactEventEmitter'); ReactEventTopLevelCallback = require('ReactEventTopLevelCallback'); ReactTestUtils = require('ReactTestUtils'); + EventPluginRegistry._resetEventPlugins(); + ReactDefaultInjection.inject(); + ReactEventEmitter.ensureListening(false, ReactEventTopLevelCallback); });