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);
});
it('activates the module', async () => {
it('activates module with settings', async () => {
// ARRANGE
const moduleName = 'test-module';
const moduleSettings = { foo: 1 };
@@ -184,4 +184,26 @@ describe('initModules', () => {
expect(moduleRegistry.isActive(moduleName as any)).toBe(true);
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?.();
if (!moduleSettings) continue;
this.settings.set(moduleName, moduleSettings);
if (moduleSettings) this.settings.set(moduleName, moduleSettings);
this.logger.debug(`Initialized module "${moduleName}"`);

View File

@@ -16,7 +16,13 @@ export interface BaseEntity {
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>;