fix(core): Address feedback on modules (no-changelog) (#17966)

This commit is contained in:
Iván Ovejero
2025-08-04 15:24:39 +02:00
committed by GitHub
parent a4f75101c7
commit c001e020b0
3 changed files with 31 additions and 5 deletions

View File

@@ -161,7 +161,7 @@ describe('initModules', () => {
expect(moduleRegistry.settings.get(moduleName)).toBe(moduleSettings); expect(moduleRegistry.settings.get(moduleName)).toBe(moduleSettings);
}); });
it('activates the module', async () => { it('activates module with settings', async () => {
// ARRANGE // ARRANGE
const moduleName = 'test-module'; const moduleName = 'test-module';
const moduleSettings = { foo: 1 }; const moduleSettings = { foo: 1 };
@@ -184,4 +184,26 @@ describe('initModules', () => {
expect(moduleRegistry.isActive(moduleName as any)).toBe(true); expect(moduleRegistry.isActive(moduleName as any)).toBe(true);
expect(moduleRegistry.getActiveModules()).toEqual([moduleName]); expect(moduleRegistry.getActiveModules()).toEqual([moduleName]);
}); });
it('activates module without settings', async () => {
// ARRANGE
const moduleName = 'test-module';
const ModuleClass: ModuleInterface = {
init: jest.fn(),
};
const moduleMetadata = mock<ModuleMetadata>({
getEntries: jest.fn().mockReturnValue([[moduleName, { class: ModuleClass }]]),
});
Container.get = jest.fn().mockReturnValue(ModuleClass);
const moduleRegistry = new ModuleRegistry(moduleMetadata, mock(), mock(), mock());
// ACT
await moduleRegistry.initModules();
// ASSERT
// eslint-disable-next-line @typescript-eslint/no-explicit-any
expect(moduleRegistry.isActive(moduleName as any)).toBe(true);
expect(moduleRegistry.getActiveModules()).toEqual([moduleName]);
});
}); });

View File

@@ -106,9 +106,7 @@ export class ModuleRegistry {
const moduleSettings = await Container.get(ModuleClass).settings?.(); const moduleSettings = await Container.get(ModuleClass).settings?.();
if (!moduleSettings) continue; if (moduleSettings) this.settings.set(moduleName, moduleSettings);
this.settings.set(moduleName, moduleSettings);
this.logger.debug(`Initialized module "${moduleName}"`); this.logger.debug(`Initialized module "${moduleName}"`);

View File

@@ -16,7 +16,13 @@ export interface BaseEntity {
reload(): Promise<void>; reload(): Promise<void>;
} }
export type EntityClass = new () => BaseEntity; export interface TimestampedEntity {
id: string;
createdAt: Date;
updatedAt: Date;
}
export type EntityClass = new () => BaseEntity | TimestampedEntity;
export type ModuleSettings = Record<string, unknown>; export type ModuleSettings = Record<string, unknown>;