fix(util-registry): fix initAll and tests
This commit is contained in:
parent
ea5351e483
commit
2620fb2f95
@ -51,18 +51,25 @@ export class UtilRegistry {
|
||||
}
|
||||
|
||||
initAll(scope) {
|
||||
let startedInstances = [];
|
||||
const setupInstances = this._registeredUtils.map((util) => this.setup(util, scope)).flat();
|
||||
|
||||
setupInstances
|
||||
.filter((instance) => instance && typeof instance.start === 'function')
|
||||
.forEach((instance) => instance.start());
|
||||
setupInstances.forEach((utilInstance) => {
|
||||
if (utilInstance) {
|
||||
const instance = utilInstance.instance;
|
||||
if (instance && typeof instance.start === 'function') {
|
||||
instance.start();
|
||||
startedInstances.push(instance);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (DEBUG_MODE > 1) {
|
||||
console.info('initialized js util instances:');
|
||||
console.table(setupInstances);
|
||||
}
|
||||
|
||||
return setupInstances;
|
||||
return startedInstances;
|
||||
}
|
||||
|
||||
setup(util, scope = document.body) {
|
||||
@ -91,13 +98,13 @@ export class UtilRegistry {
|
||||
console.info('Got utility instance for utility "' + util.name + '"', { utilInstance });
|
||||
}
|
||||
|
||||
instances.push(utilInstance);
|
||||
instances.push({ util: util, scope: scope, element: element, instance: utilInstance });
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
this._activeUtilInstances.push(...instances);
|
||||
return instances.map((instance) => ({ scope: scope, util: util, ...instance }));
|
||||
return instances;
|
||||
}
|
||||
|
||||
find(name) {
|
||||
|
||||
@ -97,8 +97,12 @@ describe('UtilRegistry', () => {
|
||||
|
||||
const setupUtilities = utilRegistry.setup(TestUtil1, testScope);
|
||||
expect(setupUtilities).toBeTruthy();
|
||||
expect(setupUtilities[0].app).toBe(fakeApp);
|
||||
expect(setupUtilities[1].app).toBe(fakeApp);
|
||||
setupUtilities.forEach((setupUtility) => {
|
||||
expect(setupUtility).toBeTruthy();
|
||||
expect(setupUtility.instance).toBeTruthy();
|
||||
});
|
||||
expect(setupUtilities[0].instance.app).toBe(fakeApp);
|
||||
expect(setupUtilities[1].instance.app).toBe(fakeApp);
|
||||
});
|
||||
});
|
||||
});
|
||||
@ -157,16 +161,14 @@ describe('UtilRegistry', () => {
|
||||
const initializedInstances = utilRegistry.initAll(testScope);
|
||||
|
||||
expect(initializedInstances.length).toBe(2);
|
||||
expect(initializedInstances.map((instance) => instance.util)).toEqual([TestUtil3,TestUtil3]);
|
||||
});
|
||||
|
||||
it('should not start instances that do not provide a start function', () => {
|
||||
utilRegistry.register(TestUtil1);
|
||||
utilRegistry.register(TestUtil2);
|
||||
const initializedInstances = utilRegistry.initAll(testScope);
|
||||
const startedInstances = utilRegistry.initAll(testScope);
|
||||
|
||||
expect(initializedInstances.length).toBe(2);
|
||||
expect(initializedInstances.map((instance) => instance.util)).toEqual([TestUtil1,TestUtil2]);
|
||||
expect(startedInstances.length).toBe(0);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user