From e2e3e122e2954b7d3c1e56ca54da1c68134798f2 Mon Sep 17 00:00:00 2001 From: Maxim Palenov Date: Fri, 11 Jul 2025 14:26:23 +0200 Subject: [PATCH] [Security Solution] Unskip prebuilt rules bundled package integration tests (#227371) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Resolves: https://github.com/elastic/kibana/issues/180087** ## Summary This PR fixes and unskips Prebuilt Rules bundled package integration tests. ## Details Flakiness was caused by improper test setup which failed to remove already installed prebuilt rules package. ## Flaky test runner - ✅ [200 runs](https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/8579) (cherry picked from commit c43d8ccfbdbf0a25b07db34d71f160a239fa858c) --- .../air_gapped/install_bundled_package.ts | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/common/prebuilt_rules_package/air_gapped/install_bundled_package.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/common/prebuilt_rules_package/air_gapped/install_bundled_package.ts index 5f2543b3af613..5dca09fe56929 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/common/prebuilt_rules_package/air_gapped/install_bundled_package.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/common/prebuilt_rules_package/air_gapped/install_bundled_package.ts @@ -15,6 +15,7 @@ import { ALL_SAVED_OBJECT_INDICES } from '@kbn/core-saved-objects-server'; import { FtrProviderContext } from '../../../../../../../ftr_provider_context'; import { deleteAllPrebuiltRuleAssets, + deletePrebuiltRulesFleetPackage, getPrebuiltRulesStatus, installPrebuiltRulesPackageByVersion, } from '../../../../../utils'; @@ -31,27 +32,21 @@ export default ({ getService }: FtrProviderContext): void => { /* attempt to install it from the local file system. The API response from EPM provides /* us with the information of whether the package was installed from the registry or /* from a package that was bundled with Kibana */ - // - // FLAKY: https://github.com/elastic/kibana/issues/180087 - describe.skip('@ess @serverless @skipInServerlessMKI Install bundled package', () => { + describe('@ess @serverless @skipInServerlessMKI Install bundled package', () => { beforeEach(async () => { await deleteAllRules(supertest, log); await deleteAllPrebuiltRuleAssets(es, log); + await deletePrebuiltRulesFleetPackage({ es, supertest, retryService: retry, log }); }); it('should list `security_detection_engine` as a bundled fleet package in the `fleet_package.json` file', async () => { const configFilePath = path.resolve(REPO_ROOT, 'fleet_packages.json'); const fleetPackages = await fs.readFile(configFilePath, 'utf8'); - const parsedFleetPackages: PackageSpecManifest[] = JSON5.parse(fleetPackages); - const securityDetectionEnginePackage = parsedFleetPackages.find( - (fleetPackage) => fleetPackage.name === 'security_detection_engine' + expect(parsedFleetPackages).toEqual( + expect.arrayContaining([expect.objectContaining({ name: 'security_detection_engine' })]) ); - - expect(securityDetectionEnginePackage).not.toBeUndefined(); - - expect(securityDetectionEnginePackage?.name).toBe('security_detection_engine'); }); it('should install prebuilt rules from the package that comes bundled with Kibana', async () => { @@ -77,9 +72,12 @@ export default ({ getService }: FtrProviderContext): void => { // Verify that status is updated after package installation const statusAfterPackageInstallation = await getPrebuiltRulesStatus(es, supertest); - expect(statusAfterPackageInstallation.stats.num_prebuilt_rules_installed).toBe(0); + expect(statusAfterPackageInstallation.stats.num_prebuilt_rules_to_install).toBeGreaterThan(0); - expect(statusAfterPackageInstallation.stats.num_prebuilt_rules_to_upgrade).toBe(0); + expect(statusAfterPackageInstallation.stats).toMatchObject({ + num_prebuilt_rules_installed: 0, + num_prebuilt_rules_to_upgrade: 0, + }); }); }); };