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
No related branches found
No related tags found
No related merge requests found
...@@ -74,7 +74,7 @@ export class PluginsManager { ...@@ -74,7 +74,7 @@ export class PluginsManager {
} }
return await Promise.all( return await Promise.all(
this.plugins this.plugins
.filter(plugin => this.isPluginAvailable(plugin.id, arch)) .filter(plugin => plugin.arches.includes(arch))
.map(async (plugin: Plugins) => { .map(async (plugin: Plugins) => {
return { return {
id: plugin.id, id: plugin.id,
...@@ -327,9 +327,6 @@ export class PluginsManager { ...@@ -327,9 +327,6 @@ export class PluginsManager {
pluginPath, pluginPath,
'signatures.sig' 'signatures.sig'
); );
return !this.certificateManager.verifySignature( return !(Buffer.compare(signature, pluginAlreadyInstalled.signature) === 0);
pluginAlreadyInstalled.signature,
signature
);
} }
} }
...@@ -374,4 +374,30 @@ describe('Plugins manager service tests', function () { ...@@ -374,4 +374,30 @@ describe('Plugins manager service tests', function () {
expect(result).toBe(true); 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