From 205c49ab54d1df133b559063b5c19e73a8f8af20 Mon Sep 17 00:00:00 2001 From: Ben Surgison Date: Thu, 23 Nov 2023 15:48:22 +0000 Subject: [PATCH] Only display packages that are plugins --- CHANGELOG.md | 4 ++++ lib/manage-prototype-handlers.js | 3 ++- lib/manage-prototype-handlers.test.js | 21 +++++++++++++++++---- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 388edc2eda..94ccb37abf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Fixes + +- [#2380: Only display packages that are plugins](https://github.com/alphagov/govuk-prototype-kit/pull/2380) + ## 13.15.2 ### Fixes diff --git a/lib/manage-prototype-handlers.js b/lib/manage-prototype-handlers.js index 6351767d5a..aca27037f4 100644 --- a/lib/manage-prototype-handlers.js +++ b/lib/manage-prototype-handlers.js @@ -437,7 +437,8 @@ function buildPluginData (pluginData) { } async function prepareForPluginPage (isInstalledPage, search) { - const allPlugins = await getAllPackages() + const allPackages = await getAllPackages() + const allPlugins = allPackages.filter(({ pluginConfig }) => !!pluginConfig) const installedPlugins = await getInstalledPackages() const plugins = isInstalledPage diff --git a/lib/manage-prototype-handlers.test.js b/lib/manage-prototype-handlers.test.js index c364b800ed..591b73d2ff 100644 --- a/lib/manage-prototype-handlers.test.js +++ b/lib/manage-prototype-handlers.test.js @@ -91,7 +91,7 @@ jest.mock('./plugins/plugins', () => { }) jest.mock('./plugins/packages', () => { - const availablePackage = { + const packageWithPluginConfig = { packageName: 'test-package', installed: false, available: true, @@ -101,18 +101,31 @@ jest.mock('./plugins/packages', () => { '2.0.0', '1.0.0' ], + packageJson: {}, + pluginConfig: {} + } + const packageWithoutPluginConfig = { + packageName: 'test-package-not-a-plugin', + installed: false, + available: true, + required: false, + latestVersion: '2.0.0', + versions: [ + '2.0.0', + '1.0.0' + ], packageJson: {} } return { lookupPackageInfo: jest.fn().mockImplementation((packageName) => { - if (packageName === availablePackage.packageName) { - return availablePackage + if (packageName === packageWithPluginConfig.packageName) { + return packageWithPluginConfig } else { return undefined } }), getInstalledPackages: jest.fn().mockResolvedValue([]), - getAllPackages: jest.fn().mockResolvedValue([availablePackage]), + getAllPackages: jest.fn().mockResolvedValue([packageWithPluginConfig, packageWithoutPluginConfig]), getDependentPackages: jest.fn().mockResolvedValue([]), getDependencyPackages: jest.fn().mockResolvedValue([]) }