Skip to content

Commit d7253da

Browse files
author
Ovidiu Barabula
committed
refactor(core): replace deps installer with manager in plugin manager
1 parent 3b8aa58 commit d7253da

File tree

2 files changed

+24
-26
lines changed

2 files changed

+24
-26
lines changed

src/plugin-manager/index.spec.ts

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,20 @@ import { assert, expect } from 'chai';
22
import 'mocha';
33
import ConfigManager from '../config-manager';
44
import ConfigWizard from '../config-wizard';
5+
import depsManager from '../dependencies-manager';
56
import TaskManager from '../task-manager';
6-
import DependenciesInstaller from '../util/dependencies-installer';
77
import PluginManager, { ERRORS } from './index';
88

99
describe('PluginManager', () => {
1010
let taskManager;
1111
let configWizard;
12-
let depsInstaller;
1312
let validPlugin;
1413

1514
beforeEach(async () => {
1615
taskManager = TaskManager({
1716
hooks: ['before', 'midway', 'after'],
1817
});
1918
configWizard = ConfigWizard(await ConfigManager());
20-
depsInstaller = await DependenciesInstaller.getInstance(process.cwd());
2119
validPlugin = {
2220
install: () => true,
2321
name: 'my-valid-plugin',
@@ -26,7 +24,7 @@ describe('PluginManager', () => {
2624

2725

2826
it('instantiates', () => {
29-
const pluginManager = PluginManager(taskManager, configWizard, depsInstaller);
27+
const pluginManager = PluginManager(taskManager, configWizard, depsManager);
3028
expect(pluginManager).to.be.an('object').to.contain.keys('use');
3129
});
3230

@@ -46,17 +44,17 @@ describe('PluginManager', () => {
4644

4745

4846
it('throws if not passed DependenciesInstaller instance', () => {
49-
assert.throws(() => PluginManager(taskManager, configWizard), ERRORS.NO_DEPS_INSTALLER);
50-
assert.throws(() => PluginManager(taskManager, configWizard, {}), ERRORS.NO_DEPS_INSTALLER);
51-
assert.throws(() => PluginManager(taskManager, configWizard, 1), ERRORS.NO_DEPS_INSTALLER);
47+
assert.throws(() => PluginManager(taskManager, configWizard), ERRORS.NO_DEPS_MANAGER);
48+
assert.throws(() => PluginManager(taskManager, configWizard, {}), ERRORS.NO_DEPS_MANAGER);
49+
assert.throws(() => PluginManager(taskManager, configWizard, 1), ERRORS.NO_DEPS_MANAGER);
5250
});
5351

5452

5553
describe('private method loadPlugin()', () => {
5654
let pluginManager;
5755

5856
beforeEach(() => {
59-
pluginManager = PluginManager(taskManager, configWizard, depsInstaller);
57+
pluginManager = PluginManager(taskManager, configWizard, depsManager);
6058
});
6159

6260

@@ -81,7 +79,7 @@ describe('PluginManager', () => {
8179
let pluginManager;
8280

8381
beforeEach(() => {
84-
pluginManager = PluginManager(taskManager, configWizard, depsInstaller);
82+
pluginManager = PluginManager(taskManager, configWizard, depsManager);
8583
});
8684

8785

@@ -130,7 +128,7 @@ describe('PluginManager', () => {
130128
getSubscribers: () => called = true,
131129
run: () => undefined,
132130
};
133-
const pluginManager = PluginManager(taskManagerStub, configWizard, depsInstaller);
131+
const pluginManager = PluginManager(taskManagerStub, configWizard, depsManager);
134132
await pluginManager.use(validPlugin);
135133
expect(called).to.be.true;
136134
});
@@ -145,20 +143,20 @@ describe('PluginManager', () => {
145143
start: () => undefined,
146144
};
147145

148-
const pluginManager = PluginManager(taskManager, configWizardStub, depsInstaller);
146+
const pluginManager = PluginManager(taskManager, configWizardStub, depsManager);
149147
await pluginManager.use(validPlugin);
150148
expect(called).to.be.true;
151149
});
152150

153151

154-
it('calls depsInstaller.getSubscriber() method if plugin is valid', async () => {
152+
it('calls depsManager.getSubscriber() method if plugin is valid', async () => {
155153
let called = false;
156154

157-
const depsInstallerStub = {
155+
const depsManagerStub = {
158156
getSubscriber: () => called = true,
159157
};
160158

161-
const pluginManager = PluginManager(taskManager, configWizard, depsInstallerStub);
159+
const pluginManager = PluginManager(taskManager, configWizard, depsManagerStub);
162160
await pluginManager.use(validPlugin);
163161
expect(called).to.be.true;
164162
});
@@ -176,7 +174,7 @@ describe('PluginManager', () => {
176174
},
177175
};
178176

179-
const pluginManager = PluginManager(taskManager, configWizard, depsInstaller);
177+
const pluginManager = PluginManager(taskManager, configWizard, depsManager);
180178
await pluginManager.use(pluginStub);
181179
});
182180
});

src/plugin-manager/index.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
import * as path from 'path';
99
import { IConfigWizard, QuestionnaireSubscriber } from '../config-wizard';
10+
import { DependenciesManager, DependenciesSubscriber } from '../dependencies-manager';
1011
import { TaskManager, TaskSubscriber } from '../task-manager';
11-
import dependenciesInstaller, { DependenciesInstaller, DependenciesSubscriber } from '../util/dependencies-installer';
1212
import Logger, { ILogger } from '../util/logger';
1313
import { dynamicRequire, flattenArray, pluginName } from '../util/utility-functions';
1414
import Installable, { InstallableObject } from './installable';
@@ -34,7 +34,7 @@ export type PluginSubscribers = TaskSubscriber | QuestionnaireSubscriber | Depen
3434
// Custom error messages
3535
export const ERRORS = {
3636
NO_CONFIG_WIZARD: 'PluginManager() requires second argument to be a ConfigWizard instance',
37-
NO_DEPS_INSTALLER: 'PluginManager() requires third argument to be a DependenciesInstaller instance',
37+
NO_DEPS_MANAGER: 'PluginManager() requires third argument to be a DependenciesManager instance',
3838
NO_TASK_MANAGER: 'PluginManager() requires first argument to be a TaskManager instance',
3939
PLUGIN_NAME_SHOULD_BE_STRING: 'PluginManager() passed in plugin name should be a string',
4040
PLUGIN_NOT_FOUND: 'PluginManager> plugin could not be loaded',
@@ -47,7 +47,7 @@ export const ERRORS = {
4747
function PluginManager(
4848
taskManager: TaskManager,
4949
configWizard: IConfigWizard,
50-
depsInstaller: DependenciesInstaller,
50+
depsManager: DependenciesManager,
5151
): PluginManager {
5252
const logger: ILogger = Logger.getInstance()('PluginManager');
5353

@@ -56,23 +56,23 @@ function PluginManager(
5656
typeof taskManager !== 'object' ||
5757
!taskManager.hasOwnProperty('getSubscribers')
5858
) {
59-
throw new Error(ERRORS.NO_TASK_MANAGER);
59+
throw new Error(`${ERRORS.NO_TASK_MANAGER}, ${typeof taskManager} was passed instead`);
6060
}
6161

6262
if (
6363
typeof configWizard === 'undefined' ||
6464
typeof configWizard !== 'object' ||
6565
!configWizard.hasOwnProperty('getSubscriber')
6666
) {
67-
throw new Error(ERRORS.NO_CONFIG_WIZARD);
67+
throw new Error(`${ERRORS.NO_CONFIG_WIZARD}, ${typeof configWizard} was passed instead`);
6868
}
6969

7070
if (
71-
typeof depsInstaller === 'undefined' ||
72-
typeof depsInstaller !== 'object' ||
73-
!depsInstaller.hasOwnProperty('getSubscriber')
71+
typeof depsManager === 'undefined' ||
72+
typeof depsManager !== 'object' ||
73+
!depsManager.hasOwnProperty('getSubscriber')
7474
) {
75-
throw new Error(ERRORS.NO_DEPS_INSTALLER);
75+
throw new Error(`${ERRORS.NO_DEPS_MANAGER}, ${typeof depsManager} was passed instead`);
7676
}
7777

7878

@@ -136,8 +136,8 @@ function PluginManager(
136136
taskManager.getSubscribers(),
137137
// Subscriber for configuration questionnaire registration
138138
configWizard.getSubscriber(),
139-
// Dependencies installer subscribrer
140-
depsInstaller.getSubscriber(),
139+
// Dependencies manager subscribrer
140+
depsManager.getSubscriber(),
141141
];
142142
}
143143

0 commit comments

Comments
 (0)