From 29238c19fd6ffc25d36047e2c093573e1ec01604 Mon Sep 17 00:00:00 2001 From: Andres Martinez Gotor Date: Tue, 12 Sep 2023 09:31:38 +0200 Subject: [PATCH] Bug: Expect a plugin signature per version (#74595) --- .../features/plugins/admin/helpers.test.ts | 27 ++++++++++++++----- public/app/features/plugins/admin/helpers.ts | 2 +- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/public/app/features/plugins/admin/helpers.test.ts b/public/app/features/plugins/admin/helpers.test.ts index b88a5d65887..d3d3596bfa1 100644 --- a/public/app/features/plugins/admin/helpers.test.ts +++ b/public/app/features/plugins/admin/helpers.test.ts @@ -113,14 +113,29 @@ describe('Plugins/Helpers', () => { test('adds the correct signature enum', () => { const pluginWithoutSignature = { ...remotePlugin, signatureType: '', versionSignatureType: '' } as RemotePlugin; - // With only "signatureType" -> valid - const pluginWithSignature1 = { ...remotePlugin, signatureType: PluginSignatureType.commercial } as RemotePlugin; - // With only "versionSignatureType" -> valid - const pluginWithSignature2 = { ...remotePlugin, versionSignatureType: PluginSignatureType.core } as RemotePlugin; + // With only "signatureType" -> invalid + const pluginWithSignature1 = { + ...remotePlugin, + signatureType: PluginSignatureType.commercial, + versionSignatureType: '', + } as RemotePlugin; + // With only "versionSignatureType" -> invalid + const pluginWithSignature2 = { + ...remotePlugin, + signatureType: '', + versionSignatureType: PluginSignatureType.core, + } as RemotePlugin; + // With signatureType and versionSignatureType -> valid + const pluginWithSignature3 = { + ...remotePlugin, + signatureType: PluginSignatureType.commercial, + versionSignatureType: PluginSignatureType.commercial, + } as RemotePlugin; expect(mapRemoteToCatalog(pluginWithoutSignature).signature).toBe(PluginSignatureStatus.missing); - expect(mapRemoteToCatalog(pluginWithSignature1).signature).toBe(PluginSignatureStatus.valid); - expect(mapRemoteToCatalog(pluginWithSignature2).signature).toBe(PluginSignatureStatus.valid); + expect(mapRemoteToCatalog(pluginWithSignature1).signature).toBe(PluginSignatureStatus.missing); + expect(mapRemoteToCatalog(pluginWithSignature2).signature).toBe(PluginSignatureStatus.missing); + expect(mapRemoteToCatalog(pluginWithSignature3).signature).toBe(PluginSignatureStatus.valid); }); test('adds an "isEnterprise" field', () => { diff --git a/public/app/features/plugins/admin/helpers.ts b/public/app/features/plugins/admin/helpers.ts index 084440256a1..9ef6444c97f 100644 --- a/public/app/features/plugins/admin/helpers.ts +++ b/public/app/features/plugins/admin/helpers.ts @@ -250,7 +250,7 @@ function getPluginSignature(options: { return local.signature; } - if (remote?.signatureType || remote?.versionSignatureType) { + if (remote?.signatureType && remote?.versionSignatureType) { return PluginSignatureStatus.valid; }