feature(jsdoc-core): allow dependencies to be reset

This commit is contained in:
Jeff Williams 2021-10-22 10:03:35 -07:00
parent 29b64a4638
commit ad2cfd70ef
2 changed files with 28 additions and 0 deletions

View File

@ -63,6 +63,14 @@ class Dependencies {
registerValue(name, value) {
this._bottle.value(name, value);
}
reset(names) {
if (!Array.isArray(names)) {
throw new Error('Must provide an array of provider names');
}
this._bottle.resetProviders(names);
}
}
module.exports = Dependencies;

View File

@ -148,4 +148,24 @@ describe('@jsdoc/core/lib/dependencies', () => {
expect(() => container.registerValue('name', new Set())).not.toThrow();
});
});
describe('reset', () => {
it('throws on non-array input', () => {
expect(() => container.reset()).toThrowError();
});
it('removes cached singletons', () => {
class Foo {}
let instance1;
let instance2;
container.registerSingleton('Foo', Foo);
instance1 = container.get('Foo');
container.reset(['Foo']);
instance2 = container.get('Foo');
expect(instance2).not.toBe(instance1);
});
});
});