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) {
|
initAll(scope) {
|
||||||
|
let startedInstances = [];
|
||||||
const setupInstances = this._registeredUtils.map((util) => this.setup(util, scope)).flat();
|
const setupInstances = this._registeredUtils.map((util) => this.setup(util, scope)).flat();
|
||||||
|
|
||||||
setupInstances
|
setupInstances.forEach((utilInstance) => {
|
||||||
.filter((instance) => instance && typeof instance.start === 'function')
|
if (utilInstance) {
|
||||||
.forEach((instance) => instance.start());
|
const instance = utilInstance.instance;
|
||||||
|
if (instance && typeof instance.start === 'function') {
|
||||||
|
instance.start();
|
||||||
|
startedInstances.push(instance);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if (DEBUG_MODE > 1) {
|
if (DEBUG_MODE > 1) {
|
||||||
console.info('initialized js util instances:');
|
console.info('initialized js util instances:');
|
||||||
console.table(setupInstances);
|
console.table(setupInstances);
|
||||||
}
|
}
|
||||||
|
|
||||||
return setupInstances;
|
return startedInstances;
|
||||||
}
|
}
|
||||||
|
|
||||||
setup(util, scope = document.body) {
|
setup(util, scope = document.body) {
|
||||||
@ -91,13 +98,13 @@ export class UtilRegistry {
|
|||||||
console.info('Got utility instance for utility "' + util.name + '"', { utilInstance });
|
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);
|
this._activeUtilInstances.push(...instances);
|
||||||
return instances.map((instance) => ({ scope: scope, util: util, ...instance }));
|
return instances;
|
||||||
}
|
}
|
||||||
|
|
||||||
find(name) {
|
find(name) {
|
||||||
|
|||||||
@ -97,8 +97,12 @@ describe('UtilRegistry', () => {
|
|||||||
|
|
||||||
const setupUtilities = utilRegistry.setup(TestUtil1, testScope);
|
const setupUtilities = utilRegistry.setup(TestUtil1, testScope);
|
||||||
expect(setupUtilities).toBeTruthy();
|
expect(setupUtilities).toBeTruthy();
|
||||||
expect(setupUtilities[0].app).toBe(fakeApp);
|
setupUtilities.forEach((setupUtility) => {
|
||||||
expect(setupUtilities[1].app).toBe(fakeApp);
|
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);
|
const initializedInstances = utilRegistry.initAll(testScope);
|
||||||
|
|
||||||
expect(initializedInstances.length).toBe(2);
|
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', () => {
|
it('should not start instances that do not provide a start function', () => {
|
||||||
utilRegistry.register(TestUtil1);
|
utilRegistry.register(TestUtil1);
|
||||||
utilRegistry.register(TestUtil2);
|
utilRegistry.register(TestUtil2);
|
||||||
const initializedInstances = utilRegistry.initAll(testScope);
|
const startedInstances = utilRegistry.initAll(testScope);
|
||||||
|
|
||||||
expect(initializedInstances.length).toBe(2);
|
expect(startedInstances.length).toBe(0);
|
||||||
expect(initializedInstances.map((instance) => instance.util)).toEqual([TestUtil1,TestUtil2]);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user