Skip to content
Snippets Groups Projects
Commit f7dac680 authored by Xavier Jouslin de Noray's avatar Xavier Jouslin de Noray
Browse files

Watcher: avoid doubles in plugins

Change-Id: I2025ece90bf72a46d744a9dc8bd9a8dbb745300a
parent ee4e0094
Branches
No related tags found
No related merge requests found
......@@ -74,7 +74,7 @@ export class PluginsManager {
}
return await Promise.all(
this.plugins
.filter(plugin => this.isPluginAvailable(plugin.id, arch))
.filter(plugin => plugin.arches.includes(arch))
.map(async (plugin: Plugins) => {
return {
id: plugin.id,
......@@ -327,9 +327,6 @@ export class PluginsManager {
pluginPath,
'signatures.sig'
);
return !this.certificateManager.verifySignature(
pluginAlreadyInstalled.signature,
signature
);
return !(Buffer.compare(signature, pluginAlreadyInstalled.signature) === 0);
}
}
......@@ -374,4 +374,30 @@ describe('Plugins manager service tests', function () {
expect(result).toBe(true);
});
it('should return false if plugin is already installed and signature is valid', async () => {
const pluginPath = 'path/to/plugin';
const signature = Buffer.from('valid-signature');
const plugin = {
id: 'test',
name: 'test',
version: '1.0.0',
description: 'test',
icon: 'test',
background: 'test',
timestamp: 'test',
signature: signature,
author: 'test',
};
const expected = [{
...plugin,
arches: ["test"],
}];
architectureService.getAllPluginArches.resolves(['test']);
fileManager.readArchive.resolves(signature);
pluginsManagerService['plugins'] = expected;
Sinon.stub(pluginsManagerService, 'findPlugin').resolves({...plugin, arches: ['test']});
const result = await pluginsManagerService['checkPluginAlreadyPull'](pluginPath);
expect(result).toBe(false);
});
});
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment