Skip to content

Commit 3f27c2c

Browse files
committed
Always expose the container mockService method
1 parent b336d45 commit 3f27c2c

File tree

2 files changed

+19
-52
lines changed

2 files changed

+19
-52
lines changed

src/Container.js

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -69,25 +69,24 @@ Container.prototype.getService = function (name) {
6969
return serviceInstance;
7070
};
7171

72-
if (process.env.NODE_ENV === 'test') {
73-
/**
74-
* Replace a service instance by a mocked instance. Only avialable in test environement.
75-
*
76-
* @param {String} name
77-
* @param {Function} mock
78-
*/
79-
Container.prototype.mockService = function (name, mock) {
80-
if (!this.serviceDefinitionCollection.hasServiceDefinition(name)) {
81-
throw new Error('Unknown service "' + name + '".');
82-
}
83-
84-
if (!this.serviceStorage.hasInstance(name)) {
85-
this.serviceStorage.addInstance(name, mock);
86-
return;
87-
}
88-
89-
this.serviceStorage.replaceInstance(name, mock);
90-
};
91-
}
72+
/**
73+
* Replace a service instance by a mocked instance. Should only be used in test
74+
* environement.
75+
*
76+
* @param {String} name
77+
* @param {Function} mock
78+
*/
79+
Container.prototype.mockService = function (name, mock) {
80+
if (!this.serviceDefinitionCollection.hasServiceDefinition(name)) {
81+
throw new Error('Unknown service "' + name + '".');
82+
}
83+
84+
if (!this.serviceStorage.hasInstance(name)) {
85+
this.serviceStorage.addInstance(name, mock);
86+
return;
87+
}
88+
89+
this.serviceStorage.replaceInstance(name, mock);
90+
};
9291

9392
module.exports = Container;

tests/units/ContainerSpec.js

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,6 @@ describe('Container', function () {
1313
process.env.NODE_ENV = previousProcessEnv;
1414
});
1515

16-
/**
17-
* @see http://stackoverflow.com/a/16060619
18-
* @param {[type]} module
19-
* @return {[type]}
20-
*/
21-
function requireUncached(module) {
22-
delete require.cache[require.resolve(module)]
23-
return require(module)
24-
}
25-
2616
it('should throw a error when trying to mock an undefined service', function () {
2717
var serviceDefinitionCollection = sinon.createStubInstance(ServiceDefinitionCollection);
2818
var parameterCollection = sinon.createStubInstance(ParameterCollection);
@@ -34,28 +24,6 @@ describe('Container', function () {
3424
}).to.throw('Unknown service "foo".');
3525
});
3626

37-
it('should provide an api to mock a service in test environement', function () {
38-
var serviceDefinitionCollection = sinon.createStubInstance(ServiceDefinitionCollection);
39-
var parameterCollection = sinon.createStubInstance(ParameterCollection);
40-
41-
process.env.NODE_ENV = 'test';
42-
var FreshContainer = requireUncached('./../../src/Container');
43-
44-
var container = new FreshContainer(serviceDefinitionCollection, parameterCollection);
45-
expect(container).to.have.property('mockService');
46-
});
47-
48-
it('should not provide an api to mock a service in production environement', function () {
49-
var serviceDefinitionCollection = sinon.createStubInstance(ServiceDefinitionCollection);
50-
var parameterCollection = sinon.createStubInstance(ParameterCollection);
51-
52-
process.env.NODE_ENV = 'production';
53-
var FreshContainer = requireUncached('./../../src/Container');
54-
55-
var container = new FreshContainer(serviceDefinitionCollection, parameterCollection);
56-
expect(container).to.not.have.property('mockService');
57-
});
58-
5927
it('should check the service cyclic dependencies if the container validation activated', function () {
6028
var serviceDefinitionCollection = sinon.createStubInstance(ServiceDefinitionCollection);
6129
serviceDefinitionCollection.checkCyclicDependencies.returns(null);

0 commit comments

Comments
 (0)