From a1bc61c4498377d70ab7c00d22cc6582be6545e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20de=20Juvigny?= Date: Tue, 28 Jun 2022 18:43:39 +0200 Subject: [PATCH] Avoid expensive loop --- .../pages/MarketplacePage/tests/index.test.js | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/packages/core/admin/admin/src/pages/MarketplacePage/tests/index.test.js b/packages/core/admin/admin/src/pages/MarketplacePage/tests/index.test.js index 6f20a0f76b..d9860ce886 100644 --- a/packages/core/admin/admin/src/pages/MarketplacePage/tests/index.test.js +++ b/packages/core/admin/admin/src/pages/MarketplacePage/tests/index.test.js @@ -211,20 +211,19 @@ describe('Marketplace page', () => { expect(pluginCardText).toEqual(null); }); - it.only('does not show install button when plugin already installed', async () => { + it.only('only show install button for plugins or providers already installed', async () => { render(App); - const npmPackageCard = await screen.getAllByTestId('npm-package-card'); - npmPackageCard.forEach(npmPackageCard => { - const installedPluginName = queryByText(npmPackageCard, /^documentation$/i); - const installedText = queryByText(npmPackageCard, /installed/i); + // Plugin that's already installed + const alreadyInstalledName = screen.getByRole('heading', { name: /^documentation/i }); + const alreadyInstalledCard = alreadyInstalledName.closest('[data-testid="npm-package-card"]'); + const alreadyInstalledText = queryByText(alreadyInstalledCard, /installed/i); + expect(alreadyInstalledText).toBeVisible(); - if (installedPluginName) { - // Plugin should already be installed - expect(installedText).toBeVisible(); - } else { - expect(installedText).toBeNull(); - } - }); + // Plugin that's not installed + const notInstalledName = screen.getByRole('heading', { name: /^comments/i }); + const notInstalledCard = notInstalledName.closest('[data-testid="npm-package-card"]'); + const notInstalledText = queryByText(notInstalledCard, /copy install command/i); + expect(notInstalledText).toBeVisible(); }); });