backend-app-api: added tests for plugin and module duplication

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2023-05-25 14:51:49 +02:00
parent 0f02bdcbd7
commit aa1c031b7b
@@ -115,4 +115,64 @@ describe('BackendInitializer', () => {
"Module 'mod' for plugin 'test' startup failed; caused by Error: NOPE",
);
});
it('should reject duplicate plugins', async () => {
const init = new BackendInitializer(new ServiceRegistry([]));
init.add(
createBackendPlugin({
pluginId: 'test',
register(reg) {
reg.registerInit({
deps: {},
async init() {},
});
},
})(),
);
init.add(
createBackendPlugin({
pluginId: 'test',
register(reg) {
reg.registerInit({
deps: {},
async init() {},
});
},
})(),
);
await expect(init.start()).rejects.toThrow(
"Plugin 'test' is already registered",
);
});
it('should reject duplicate modules', async () => {
const init = new BackendInitializer(new ServiceRegistry([]));
init.add(
createBackendModule({
pluginId: 'test',
moduleId: 'mod',
register(reg) {
reg.registerInit({
deps: {},
async init() {},
});
},
})(),
);
init.add(
createBackendModule({
pluginId: 'test',
moduleId: 'mod',
register(reg) {
reg.registerInit({
deps: {},
async init() {},
});
},
})(),
);
await expect(init.start()).rejects.toThrow(
"Module 'mod' for plugin 'test' is already registered",
);
});
});