From 2dc1357dfd53880501108a8b6cdd78f9c022847f Mon Sep 17 00:00:00 2001 From: Sonia Sanz Vivas Date: Tue, 19 Aug 2025 11:32:56 +0200 Subject: [PATCH 1/5] Clean all tests after execution and navigate directly to the tab --- .../create_enrich_policy.ts | 14 +- .../data_streams_tab/data_streams_tab.ts | 25 +-- .../data_streams_tab/index_mode.ts | 4 +- .../enrich_policies_tab.ts | 21 ++- .../apps/index_management/home_page.ts | 11 +- .../index_management/index_template_wizard.ts | 143 ++++++++++-------- .../index_template_list.ts | 6 +- .../index_templates_tab/index_template_tab.ts | 15 +- .../page_objects/index_management_page.ts | 8 +- 9 files changed, 138 insertions(+), 109 deletions(-) diff --git a/x-pack/platform/test/functional/apps/index_management/create_enrich_policy/create_enrich_policy.ts b/x-pack/platform/test/functional/apps/index_management/create_enrich_policy/create_enrich_policy.ts index 10860ac401222..e978f8a90d1c4 100644 --- a/x-pack/platform/test/functional/apps/index_management/create_enrich_policy/create_enrich_policy.ts +++ b/x-pack/platform/test/functional/apps/index_management/create_enrich_policy/create_enrich_policy.ts @@ -43,22 +43,24 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await log.debug('Navigating to the enrich policies tab'); await security.testUser.setRoles(['index_management_user']); - await pageObjects.common.navigateToApp('indexManagement'); - // Navigate to the enrich policies tab - await pageObjects.indexManagement.changeTabs('enrich_policiesTab'); - await pageObjects.header.waitUntilLoadingHasFinished(); + await pageObjects.indexManagement.navigateToIndexManagementTab('enrich_policies'); // Click create policy button await testSubjects.click('enrichPoliciesEmptyPromptCreateButton'); }); after(async () => { - await log.debug('Cleaning up created index'); + await log.debug('Cleaning up created index and policy'); try { await es.indices.delete({ index: INDEX_NAME }); + } catch (e) { + log.debug('[Teardown error] Error deleting test index'); + } + + try { + await es.enrich.deletePolicy({ name: POLICY_NAME }); } catch (e) { log.debug('[Teardown error] Error deleting test policy'); - throw e; } }); diff --git a/x-pack/platform/test/functional/apps/index_management/data_streams_tab/data_streams_tab.ts b/x-pack/platform/test/functional/apps/index_management/data_streams_tab/data_streams_tab.ts index 6f24f4ac15b44..2a2a407544574 100644 --- a/x-pack/platform/test/functional/apps/index_management/data_streams_tab/data_streams_tab.ts +++ b/x-pack/platform/test/functional/apps/index_management/data_streams_tab/data_streams_tab.ts @@ -59,10 +59,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await log.debug('Navigating to the data streams tab'); await security.testUser.setRoles(['index_management_user']); - await pageObjects.common.navigateToApp('indexManagement'); - // Navigate to the data streams tab - await pageObjects.indexManagement.changeTabs('data_streamsTab'); - await pageObjects.header.waitUntilLoadingHasFinished(); + await pageObjects.indexManagement.navigateToIndexManagementTab('data_streams'); }); after(async () => { @@ -153,9 +150,13 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { // Submit the form await testSubjects.click('saveButton'); - // Expect to see a success toast - const successToast = await toasts.getElementByIndex(1); - expect(await successToast.getVisibleText()).to.contain( + // Wait for the modal to close after successful submission + await testSubjects.missingOrFail('editDataRetentionModal'); + + // Wait for and verify the success toast appears + await toasts.assertCount(1); + const successToastContent = await toasts.getContentByIndex(1); + expect(successToastContent).to.contain( 'Data retention has been updated for 2 data streams.' ); // Clear up toasts for next test @@ -172,9 +173,13 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { // Submit the form await testSubjects.click('saveButton'); - // Expect to see a success toast - const successToast = await toasts.getElementByIndex(1); - expect(await successToast.getVisibleText()).to.contain( + // Wait for the modal to close after successful submission + await testSubjects.missingOrFail('editDataRetentionModal'); + + // Wait for and verify the success toast appears + await toasts.assertCount(1); + const successToastContent = await toasts.getContentByIndex(1); + expect(successToastContent).to.contain( 'Data retention has been updated for 2 data streams.' ); // Clear up toasts for next test diff --git a/x-pack/platform/test/functional/apps/index_management/data_streams_tab/index_mode.ts b/x-pack/platform/test/functional/apps/index_management/data_streams_tab/index_mode.ts index 7fc399ab105b3..acca887ffcfc1 100644 --- a/x-pack/platform/test/functional/apps/index_management/data_streams_tab/index_mode.ts +++ b/x-pack/platform/test/functional/apps/index_management/data_streams_tab/index_mode.ts @@ -69,9 +69,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await log.debug('Navigating to the data streams tab'); await security.testUser.setRoles(['index_management_user']); - await pageObjects.common.navigateToApp('indexManagement'); - // Navigate to the data streams tab - await pageObjects.indexManagement.changeTabs('data_streamsTab'); + await pageObjects.indexManagement.navigateToIndexManagementTab('data_streams'); await pageObjects.header.waitUntilLoadingHasFinished(); }); diff --git a/x-pack/platform/test/functional/apps/index_management/enrich_policies_tab/enrich_policies_tab.ts b/x-pack/platform/test/functional/apps/index_management/enrich_policies_tab/enrich_policies_tab.ts index 936ab5e3145a9..5af1ff2f7249e 100644 --- a/x-pack/platform/test/functional/apps/index_management/enrich_policies_tab/enrich_policies_tab.ts +++ b/x-pack/platform/test/functional/apps/index_management/enrich_policies_tab/enrich_policies_tab.ts @@ -56,20 +56,22 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await log.debug('Navigating to the enrich policies tab'); await security.testUser.setRoles(['index_management_user']); - await pageObjects.common.navigateToApp('indexManagement'); - // Navigate to the enrich policies tab - await pageObjects.indexManagement.changeTabs('enrich_policiesTab'); + await pageObjects.indexManagement.navigateToIndexManagementTab('enrich_policies'); await pageObjects.header.waitUntilLoadingHasFinished(); }); after(async () => { await log.debug('Cleaning up created index and policy'); + try { + await es.enrich.deletePolicy({ name: ENRICH_POLICY_NAME }); + } catch (e) { + log.debug('[Teardown error] Error deleting policy'); + } try { await es.indices.delete({ index: ENRICH_INDEX_NAME }); } catch (e) { - log.debug('[Teardown error] Error deleting test policy'); - throw e; + log.debug(`[Teardown error] Error deleting test index: ${e.message}`); } }); @@ -100,10 +102,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { it('can delete a policy', async () => { await security.testUser.setRoles(['index_management_user']); - await pageObjects.common.navigateToApp('indexManagement'); - // Navigate to the enrich policies tab - await pageObjects.indexManagement.changeTabs('enrich_policiesTab'); - await pageObjects.header.waitUntilLoadingHasFinished(); + await pageObjects.indexManagement.navigateToIndexManagementTab('enrich_policies'); // Since we disabled wait_for_completion in the server request, we dont know when // a given policy will finish executing. Until that happens the policy cannot // be deleted. 2s seems to be plenty enough to guarantee that, at least for this @@ -121,9 +120,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { this.tags('skipFIPS'); it('read only access', async () => { await security.testUser.setRoles(['index_management_monitor_enrich_only']); - await pageObjects.common.navigateToApp('indexManagement'); - await pageObjects.indexManagement.changeTabs('enrich_policiesTab'); - await pageObjects.header.waitUntilLoadingHasFinished(); + await pageObjects.indexManagement.navigateToIndexManagementTab('enrich_policies'); await testSubjects.missingOrFail('createPolicyButton'); await testSubjects.missingOrFail('deletePolicyButton'); diff --git a/x-pack/platform/test/functional/apps/index_management/home_page.ts b/x-pack/platform/test/functional/apps/index_management/home_page.ts index 92b606c171a64..3cdcadef65b40 100644 --- a/x-pack/platform/test/functional/apps/index_management/home_page.ts +++ b/x-pack/platform/test/functional/apps/index_management/home_page.ts @@ -15,6 +15,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { const browser = getService('browser'); const retry = getService('retry'); const security = getService('security'); + const es = getService('es'); describe('Home page', function () { before(async () => { @@ -66,6 +67,14 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await pageObjects.indexManagement.clickCreateIndexSaveButton(); await pageObjects.indexManagement.expectIndexToExist(testIndexName); }); + + after(async () => { + try { + await es.indices.delete({ index: testIndexName }); + } catch (e) { + log.debug(`Index cleanup failed for ${testIndexName}: ${e.message}`); + } + }); }); describe('Data streams', () => { @@ -123,7 +132,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { describe('Enrich policies', () => { it('renders the enrich policies tab', async () => { - // Navigate to the component templates tab + // Navigate to the enrich policies tab await pageObjects.indexManagement.changeTabs('enrich_policiesTab'); await pageObjects.header.waitUntilLoadingHasFinished(); diff --git a/x-pack/platform/test/functional/apps/index_management/index_template_wizard.ts b/x-pack/platform/test/functional/apps/index_management/index_template_wizard.ts index 0480754eb8a98..3d5d0b1e8e26f 100644 --- a/x-pack/platform/test/functional/apps/index_management/index_template_wizard.ts +++ b/x-pack/platform/test/functional/apps/index_management/index_template_wizard.ts @@ -16,22 +16,29 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { const find = getService('find'); const browser = getService('browser'); const log = getService('log'); + const es = getService('es'); describe('Index template wizard', function () { before(async () => { await security.testUser.setRoles(['index_management_user']); - await pageObjects.common.navigateToApp('indexManagement'); - // Navigate to the index templates tab - await pageObjects.indexManagement.changeTabs('templatesTab'); - await pageObjects.header.waitUntilLoadingHasFinished(); }); describe('Create', () => { before(async () => { + await pageObjects.indexManagement.navigateToIndexManagementTab('templates'); // Click Create Template button await testSubjects.click('createTemplateButton'); }); + after(async () => { + try { + await es.indices.deleteIndexTemplate({ name: 'test-index-template' }); + await pageObjects.indexManagement.navigateToIndexManagementTab('templates'); + } catch (e) { + log.debug(`Template cleanup failed for test-index-template: ${e.message}`); + } + }); + it('should set the correct page title', async () => { const pageTitle = await testSubjects.exists('pageTitle'); expect(pageTitle).to.be(true); @@ -114,81 +121,91 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { }); // https://github.com/elastic/kibana/pull/195174 - it('can preview index template that matches a_fake_index_pattern_that_wont_match_any_indices', async () => { - // Click Create Template button - await testSubjects.click('createTemplateButton'); - const pageTitleText = await testSubjects.getVisibleText('pageTitle'); - expect(pageTitleText).to.be('Create template'); + describe('Preview template test', () => { + before(async () => { + await pageObjects.indexManagement.navigateToIndexManagementTab('templates'); + }); - const stepTitle1 = await testSubjects.getVisibleText('stepTitle'); - expect(stepTitle1).to.be('Logistics'); + after(async () => { + try { + await es.indices.deleteIndexTemplate({ name: 'a-star' }); + } catch (e) { + log.debug(`Template cleanup failed for a-star: ${e.message}`); + } + }); - // Fill out required fields - await testSubjects.setValue('nameField', 'a-star'); - await testSubjects.setValue('indexPatternsField', 'a*'); - await testSubjects.setValue('priorityField', '1000'); + it('can preview index template that matches a_fake_index_pattern_that_wont_match_any_indices', async () => { + // Click Create Template button + await testSubjects.click('createTemplateButton'); + const pageTitleText = await testSubjects.getVisibleText('pageTitle'); + expect(pageTitleText).to.be('Create template'); - // Click Next button - await pageObjects.indexManagement.clickNextButton(); + const stepTitle1 = await testSubjects.getVisibleText('stepTitle'); + expect(stepTitle1).to.be('Logistics'); - // Verify empty prompt - const emptyPrompt = await testSubjects.exists('emptyPrompt'); - expect(emptyPrompt).to.be(true); + // Fill out required fields + await testSubjects.setValue('nameField', 'a-star'); + await testSubjects.setValue('indexPatternsField', 'a*'); + await testSubjects.setValue('priorityField', '1000'); - // Click Next button - await pageObjects.indexManagement.clickNextButton(); + // Click Next button + await pageObjects.indexManagement.clickNextButton(); - // Verify step title - const stepTitle2 = await testSubjects.getVisibleText('stepTitle'); - expect(stepTitle2).to.be('Index settings (optional)'); + // Verify empty prompt + const emptyPrompt = await testSubjects.exists('emptyPrompt'); + expect(emptyPrompt).to.be(true); - // Click Next button - await pageObjects.indexManagement.clickNextButton(); + // Click Next button + await pageObjects.indexManagement.clickNextButton(); - // Verify step title - const stepTitle3 = await testSubjects.getVisibleText('stepTitle'); - expect(stepTitle3).to.be('Mappings (optional)'); + // Verify step title + const stepTitle2 = await testSubjects.getVisibleText('stepTitle'); + expect(stepTitle2).to.be('Index settings (optional)'); - // Click Next button - await pageObjects.indexManagement.clickNextButton(); + // Click Next button + await pageObjects.indexManagement.clickNextButton(); - // Verify step title - const stepTitle4 = await testSubjects.getVisibleText('stepTitle'); - expect(stepTitle4).to.be('Aliases (optional)'); + // Verify step title + const stepTitle3 = await testSubjects.getVisibleText('stepTitle'); + expect(stepTitle3).to.be('Mappings (optional)'); - // Click Next button - await pageObjects.indexManagement.clickNextButton(); + // Click Next button + await pageObjects.indexManagement.clickNextButton(); - // Verify step title - const stepTitle = await testSubjects.getVisibleText('stepTitle'); - expect(stepTitle).to.be("Review details for 'a-star'"); + // Verify step title + const stepTitle4 = await testSubjects.getVisibleText('stepTitle'); + expect(stepTitle4).to.be('Aliases (optional)'); - // Verify that summary exists - const summaryTabContent = await testSubjects.exists('summaryTabContent'); - expect(summaryTabContent).to.be(true); + // Click Next button + await pageObjects.indexManagement.clickNextButton(); - // Verify that index mode is set to "Standard" - expect(await testSubjects.exists('indexModeTitle')).to.be(true); - expect(await testSubjects.getVisibleText('indexModeValue')).to.be('Standard'); + // Verify step title + const stepTitle = await testSubjects.getVisibleText('stepTitle'); + expect(stepTitle).to.be("Review details for 'a-star'"); - // Click Create template - await pageObjects.indexManagement.clickNextButton(); + // Verify that summary exists + const summaryTabContent = await testSubjects.exists('summaryTabContent'); + expect(summaryTabContent).to.be(true); - // Click preview tab, we know its the last one - const tabs = await testSubjects.findAll('tab'); - await tabs[tabs.length - 1].click(); - const templatePreview = await testSubjects.getVisibleText('simulateTemplatePreview'); - expect(templatePreview).to.not.contain('error'); + // Verify that index mode is set to "Standard" + expect(await testSubjects.exists('indexModeTitle')).to.be(true); + expect(await testSubjects.getVisibleText('indexModeValue')).to.be('Standard'); - await testSubjects.click('closeDetailsButton'); - }); + // Click Create template + await pageObjects.indexManagement.clickNextButton(); + + // Click preview tab, we know its the last one + const tabs = await testSubjects.findAll('tab'); + await tabs[tabs.length - 1].click(); + const templatePreview = await testSubjects.getVisibleText('simulateTemplatePreview'); + expect(templatePreview).to.not.contain('error'); + await testSubjects.click('closeDetailsButton'); + }); + }); describe('Mappings step', () => { beforeEach(async () => { - await pageObjects.common.navigateToApp('indexManagement'); - // Navigate to the index templates tab - await pageObjects.indexManagement.changeTabs('templatesTab'); - await pageObjects.header.waitUntilLoadingHasFinished(); + await pageObjects.indexManagement.navigateToIndexManagementTab('templates'); // Click Create Template button await testSubjects.click('createTemplateButton'); @@ -202,6 +219,14 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { expect(await testSubjects.getVisibleText('stepTitle')).to.be('Mappings (optional)'); }); + afterEach(async () => { + try { + await es.indices.deleteIndexTemplate({ name: 'test-index-template' }); + } catch (e) { + log.debug(`Template cleanup failed in mappings test: ${e.message}`); + } + }); + // Test for catching the bug reported in https://github.com/elastic/kibana/issues/156202 it("clearing up the Numeric subtype dropdown doesn't break the page", async () => { // Add a mapping field diff --git a/x-pack/platform/test/functional/apps/index_management/index_templates_tab/index_template_list.ts b/x-pack/platform/test/functional/apps/index_management/index_templates_tab/index_template_list.ts index 0b77b5feb2228..726b9f2646871 100644 --- a/x-pack/platform/test/functional/apps/index_management/index_templates_tab/index_template_list.ts +++ b/x-pack/platform/test/functional/apps/index_management/index_templates_tab/index_template_list.ts @@ -18,11 +18,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { before(async () => { await log.debug('Navigating to the index templates tab'); await security.testUser.setRoles(['index_management_user']); - await pageObjects.common.navigateToApp('indexManagement'); - - // Navigate to the templates tab - await pageObjects.indexManagement.changeTabs('templatesTab'); - await pageObjects.header.waitUntilLoadingHasFinished(); + await pageObjects.indexManagement.navigateToIndexManagementTab('templates'); }); it('shows warning callout when deleting a managed index template', async () => { diff --git a/x-pack/platform/test/functional/apps/index_management/index_templates_tab/index_template_tab.ts b/x-pack/platform/test/functional/apps/index_management/index_templates_tab/index_template_tab.ts index 1df4c80a9e4a3..3fa29ca06911c 100644 --- a/x-pack/platform/test/functional/apps/index_management/index_templates_tab/index_template_tab.ts +++ b/x-pack/platform/test/functional/apps/index_management/index_templates_tab/index_template_tab.ts @@ -22,10 +22,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { before(async () => { await log.debug('Navigating to the index templates tab'); await security.testUser.setRoles(['index_management_user']); - await pageObjects.common.navigateToApp('indexManagement'); - // Navigate to the templates tab - await pageObjects.indexManagement.changeTabs('templatesTab'); - await pageObjects.header.waitUntilLoadingHasFinished(); + await pageObjects.indexManagement.navigateToIndexManagementTab('templates'); }); afterEach(async () => { @@ -112,9 +109,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { // Close Flyout to return to templates tab await testSubjects.click('closeDetailsButton'); } else { - // Comeback to templates tab - await pageObjects.common.navigateToApp('indexManagement'); - await pageObjects.indexManagement.changeTabs('templatesTab'); + await pageObjects.indexManagement.navigateToIndexManagementTab('templates'); } }); @@ -243,11 +238,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { }, }, }); - - // Navigate to the index management - await pageObjects.common.navigateToApp('indexManagement'); - // Navigate to the templates tab - await pageObjects.indexManagement.changeTabs('templatesTab'); + await pageObjects.indexManagement.navigateToIndexManagementTab('templates'); }); after(async () => { diff --git a/x-pack/platform/test/functional/page_objects/index_management_page.ts b/x-pack/platform/test/functional/page_objects/index_management_page.ts index 534a51d6e4ba6..33add239d2069 100644 --- a/x-pack/platform/test/functional/page_objects/index_management_page.ts +++ b/x-pack/platform/test/functional/page_objects/index_management_page.ts @@ -7,10 +7,11 @@ import expect from '@kbn/expect'; import type { FtrProviderContext } from '../ftr_provider_context'; -export function IndexManagementPageProvider({ getService }: FtrProviderContext) { +export function IndexManagementPageProvider({ getService, getPageObjects }: FtrProviderContext) { const retry = getService('retry'); const find = getService('find'); const testSubjects = getService('testSubjects'); + const pageObjects = getPageObjects(['common']); const browser = getService('browser'); return { @@ -323,5 +324,10 @@ export function IndexManagementPageProvider({ getService }: FtrProviderContext) const manageIndexComponent = await testSubjects.find(manageIndexTab); await manageIndexComponent.click(); }, + async navigateToIndexManagementTab( + path: 'indices' | 'data_streams' | 'templates' | 'component_templates' | 'enrich_policies' + ) { + await pageObjects.common.navigateToApp('indexManagement', { path }); + }, }; } From ee0835e5ac5cd7650b42ccca51759e9820af10e5 Mon Sep 17 00:00:00 2001 From: Sonia Sanz Vivas Date: Tue, 19 Aug 2025 15:46:45 +0200 Subject: [PATCH 2/5] Add changes to serverless --- .../component_template_list/table.tsx | 4 ++-- .../index_management/component_templates.ts | 8 +++----- .../index_management/create_enrich_policy.ts | 15 ++++++++------- .../management/index_management/data_streams.ts | 5 +---- .../index_management/enrich_policies.ts | 16 +++++++++------- .../management/index_management/index_detail.ts | 5 +---- .../index_management/index_templates.ts | 5 +---- .../management/index_management/indices.ts | 10 ++-------- 8 files changed, 27 insertions(+), 41 deletions(-) diff --git a/x-pack/platform/plugins/shared/index_management/public/application/components/component_templates/component_template_list/table.tsx b/x-pack/platform/plugins/shared/index_management/public/application/components/component_templates/component_template_list/table.tsx index d3ef6b7cc62c4..7762fbacee41f 100644 --- a/x-pack/platform/plugins/shared/index_management/public/application/components/component_templates/component_template_list/table.tsx +++ b/x-pack/platform/plugins/shared/index_management/public/application/components/component_templates/component_template_list/table.tsx @@ -195,8 +195,8 @@ export const ComponentTable: FunctionComponent = ({ {i18n.translate('xpack.idxMgmt.componentTemplatesList.table.createButtonLabel', { diff --git a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/component_templates.ts b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/component_templates.ts index 7428ddf54de77..54f7c7b739b8c 100644 --- a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/component_templates.ts +++ b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/component_templates.ts @@ -26,10 +26,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { }); beforeEach(async () => { - await pageObjects.common.navigateToApp('indexManagement'); - // Navigate to the index templates tab - await pageObjects.indexManagement.changeTabs('component_templatesTab'); - await pageObjects.header.waitUntilLoadingHasFinished(); + await pageObjects.indexManagement.navigateToIndexManagementTab('component_templates'); }); it('renders the component templates tab', async () => { @@ -87,7 +84,8 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { }); it('Creates component template', async () => { - await testSubjects.click('createPipelineButton'); + // Ensure the test subject matches the UI component's data-test-subj attribute + await testSubjects.click('createComponentTemplateButton'); await testSubjects.setValue('nameField', TEST_COMPONENT_TEMPLATE); diff --git a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/create_enrich_policy.ts b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/create_enrich_policy.ts index 80c8117d9b08d..f31a06956bb5b 100644 --- a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/create_enrich_policy.ts +++ b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/create_enrich_policy.ts @@ -45,11 +45,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { log.debug('Navigating to the enrich policies tab'); await pageObjects.svlCommonPage.loginAsAdmin(); - await pageObjects.common.navigateToApp('indexManagement'); - - // Navigate to the enrich policies tab - await pageObjects.indexManagement.changeTabs('enrich_policiesTab'); - await pageObjects.header.waitUntilLoadingHasFinished(); + await pageObjects.indexManagement.navigateToIndexManagementTab('enrich_policies'); // Click create policy button await testSubjects.click('enrichPoliciesEmptyPromptCreateButton'); }); @@ -57,11 +53,16 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { after(async () => { log.debug('Cleaning up created index'); + try { + await es.enrich.deletePolicy({ name: POLICY_NAME }); + } catch (e) { + log.debug('[Teardown error] Error deleting policy'); + } + try { await es.indices.delete({ index: INDEX_NAME }); } catch (e) { - log.debug('[Teardown error] Error deleting test policy'); - throw e; + log.debug('[Teardown error] Error deleting test index'); } }); diff --git a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/data_streams.ts b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/data_streams.ts index a3f4a9a04267a..c40261b48dc12 100644 --- a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/data_streams.ts +++ b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/data_streams.ts @@ -64,10 +64,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await security.testUser.setRoles(['index_management_user']); await pageObjects.svlCommonPage.loginAsAdmin(); - await pageObjects.common.navigateToApp('indexManagement'); - // Navigate to the indices tab - await pageObjects.indexManagement.changeTabs('data_streamsTab'); - await pageObjects.header.waitUntilLoadingHasFinished(); + await pageObjects.indexManagement.navigateToIndexManagementTab('data_streams'); }); after(async () => { diff --git a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/enrich_policies.ts b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/enrich_policies.ts index 1a41a224cffab..41c317b0d9884 100644 --- a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/enrich_policies.ts +++ b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/enrich_policies.ts @@ -52,21 +52,23 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { log.debug('Navigating to the enrich policies tab'); await pageObjects.svlCommonPage.loginAsAdmin(); - await pageObjects.common.navigateToApp('indexManagement'); - - // Navigate to the enrich policies tab - await pageObjects.indexManagement.changeTabs('enrich_policiesTab'); - await pageObjects.header.waitUntilLoadingHasFinished(); + await pageObjects.indexManagement.navigateToIndexManagementTab('enrich_policies'); }); after(async () => { log.debug('Cleaning up created index and policy'); + // Delete the policy before the index, since the policy depends on the index. try { - await es.indices.delete({ index: ENRICH_INDEX_NAME }); + await es.enrich.deletePolicy({ name: ENRICH_POLICY_NAME }); } catch (e) { log.debug('[Teardown error] Error deleting test policy'); - throw e; + } + + try { + await es.indices.delete({ index: ENRICH_INDEX_NAME }); + } catch (e) { + log.debug('[Teardown error] Error deleting test index'); } }); diff --git a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/index_detail.ts b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/index_detail.ts index 3eb8237a77c28..4f90d693bdb61 100644 --- a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/index_detail.ts +++ b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/index_detail.ts @@ -18,10 +18,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { before(async () => { await security.testUser.setRoles(['index_management_user']); await pageObjects.svlCommonPage.loginAsAdmin(); - await pageObjects.common.navigateToApp('indexManagement'); - // Navigate to the indices tab - await pageObjects.indexManagement.changeTabs('indicesTab'); - await pageObjects.header.waitUntilLoadingHasFinished(); + await pageObjects.indexManagement.navigateToIndexManagementTab('indices'); }); it('renders the indices tab', async () => { diff --git a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/index_templates.ts b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/index_templates.ts index 59e64ee17f21f..6dbc821d50f10 100644 --- a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/index_templates.ts +++ b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/index_templates.ts @@ -27,10 +27,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { }); beforeEach(async () => { - await pageObjects.common.navigateToApp('indexManagement'); - // Navigate to the index templates tab - await pageObjects.indexManagement.changeTabs('templatesTab'); - await pageObjects.header.waitUntilLoadingHasFinished(); + await pageObjects.indexManagement.navigateToIndexManagementTab('templates'); }); after(async () => { diff --git a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/indices.ts b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/indices.ts index 42114d00aab4f..0d62c39841f18 100644 --- a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/indices.ts +++ b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/indices.ts @@ -22,10 +22,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { before(async () => { await security.testUser.setRoles(['index_management_user']); await pageObjects.svlCommonPage.loginAsAdmin(); - await pageObjects.common.navigateToApp('indexManagement'); - // Navigate to the indices tab - await pageObjects.indexManagement.changeTabs('indicesTab'); - await pageObjects.header.waitUntilLoadingHasFinished(); + await pageObjects.indexManagement.navigateToIndexManagementTab('indices'); }); it('renders the indices tab', async () => { @@ -41,10 +38,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { describe('manage index', function () { beforeEach(async () => { - await pageObjects.common.navigateToApp('indexManagement'); - // Navigate to the indices tab - await pageObjects.indexManagement.changeTabs('indicesTab'); - await pageObjects.header.waitUntilLoadingHasFinished(); + await pageObjects.indexManagement.navigateToIndexManagementTab('indices'); await pageObjects.indexManagement.manageIndex(testIndexName); await pageObjects.indexManagement.manageIndexContextMenuExists(); }); From 4b843c9756e1ff8e824697b883026fc799634825 Mon Sep 17 00:00:00 2001 From: Sonia Sanz Vivas Date: Tue, 19 Aug 2025 16:01:34 +0200 Subject: [PATCH 3/5] Add missing navigateTo --- .../management/index_management/component_templates.ts | 1 - .../test_suites/management/index_management/data_streams.ts | 5 +---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/component_templates.ts b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/component_templates.ts index 54f7c7b739b8c..a2127f9bf4e91 100644 --- a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/component_templates.ts +++ b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/component_templates.ts @@ -119,7 +119,6 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { }); await pageObjects.svlCommonPage.loginWithCustomRole(); await pageObjects.common.navigateToApp('indexManagement'); - await pageObjects.header.waitUntilLoadingHasFinished(); }); after(async () => { diff --git a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/data_streams.ts b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/data_streams.ts index c40261b48dc12..1545cec8b8240 100644 --- a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/data_streams.ts +++ b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/data_streams.ts @@ -221,10 +221,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { }; before(async () => { - await pageObjects.common.navigateToApp('indexManagement'); - // Navigate to the indices tab - await pageObjects.indexManagement.changeTabs('data_streamsTab'); - await pageObjects.header.waitUntilLoadingHasFinished(); + await pageObjects.indexManagement.navigateToIndexManagementTab('data_streams'); }); afterEach(async () => { From 8fa330ea3534914ff0e51bfcefc09ab7fc8ba75e Mon Sep 17 00:00:00 2001 From: Sonia Sanz Vivas Date: Tue, 19 Aug 2025 16:11:39 +0200 Subject: [PATCH 4/5] Unify cleaning for enrich --- .../create_enrich_policy/create_enrich_policy.ts | 9 ++------- .../enrich_policies_tab/enrich_policies_tab.ts | 8 +------- .../management/index_management/create_enrich_policy.ts | 7 +------ .../management/index_management/enrich_policies.ts | 9 +-------- 4 files changed, 5 insertions(+), 28 deletions(-) diff --git a/x-pack/platform/test/functional/apps/index_management/create_enrich_policy/create_enrich_policy.ts b/x-pack/platform/test/functional/apps/index_management/create_enrich_policy/create_enrich_policy.ts index e978f8a90d1c4..83ee271631be4 100644 --- a/x-pack/platform/test/functional/apps/index_management/create_enrich_policy/create_enrich_policy.ts +++ b/x-pack/platform/test/functional/apps/index_management/create_enrich_policy/create_enrich_policy.ts @@ -51,16 +51,11 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { after(async () => { await log.debug('Cleaning up created index and policy'); - try { - await es.indices.delete({ index: INDEX_NAME }); - } catch (e) { - log.debug('[Teardown error] Error deleting test index'); - } - try { await es.enrich.deletePolicy({ name: POLICY_NAME }); + await es.indices.delete({ index: INDEX_NAME }); } catch (e) { - log.debug('[Teardown error] Error deleting test policy'); + log.debug(`[Teardown error] Error deleting test index: ${e.message}`); } }); diff --git a/x-pack/platform/test/functional/apps/index_management/enrich_policies_tab/enrich_policies_tab.ts b/x-pack/platform/test/functional/apps/index_management/enrich_policies_tab/enrich_policies_tab.ts index 5af1ff2f7249e..339e541919e28 100644 --- a/x-pack/platform/test/functional/apps/index_management/enrich_policies_tab/enrich_policies_tab.ts +++ b/x-pack/platform/test/functional/apps/index_management/enrich_policies_tab/enrich_policies_tab.ts @@ -57,21 +57,15 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await log.debug('Navigating to the enrich policies tab'); await security.testUser.setRoles(['index_management_user']); await pageObjects.indexManagement.navigateToIndexManagementTab('enrich_policies'); - await pageObjects.header.waitUntilLoadingHasFinished(); }); after(async () => { await log.debug('Cleaning up created index and policy'); try { await es.enrich.deletePolicy({ name: ENRICH_POLICY_NAME }); - } catch (e) { - log.debug('[Teardown error] Error deleting policy'); - } - - try { await es.indices.delete({ index: ENRICH_INDEX_NAME }); } catch (e) { - log.debug(`[Teardown error] Error deleting test index: ${e.message}`); + log.debug(`[Teardown error] Error deleting test policy: ${e.message}`); } }); diff --git a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/create_enrich_policy.ts b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/create_enrich_policy.ts index f31a06956bb5b..96021c5eeeed9 100644 --- a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/create_enrich_policy.ts +++ b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/create_enrich_policy.ts @@ -55,14 +55,9 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { try { await es.enrich.deletePolicy({ name: POLICY_NAME }); - } catch (e) { - log.debug('[Teardown error] Error deleting policy'); - } - - try { await es.indices.delete({ index: INDEX_NAME }); } catch (e) { - log.debug('[Teardown error] Error deleting test index'); + log.debug(`[Teardown error] Error deleting test index: ${e.message}`); } }); diff --git a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/enrich_policies.ts b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/enrich_policies.ts index 41c317b0d9884..f7f7b499b3507 100644 --- a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/enrich_policies.ts +++ b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/enrich_policies.ts @@ -57,18 +57,11 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { after(async () => { log.debug('Cleaning up created index and policy'); - - // Delete the policy before the index, since the policy depends on the index. try { await es.enrich.deletePolicy({ name: ENRICH_POLICY_NAME }); - } catch (e) { - log.debug('[Teardown error] Error deleting test policy'); - } - - try { await es.indices.delete({ index: ENRICH_INDEX_NAME }); } catch (e) { - log.debug('[Teardown error] Error deleting test index'); + log.debug(`[Teardown error] Error deleting test index: ${e.message}`); } }); From d74139cc48ed3520a43abfbdfc0b2f34ba6adc2b Mon Sep 17 00:00:00 2001 From: Sonia Sanz Vivas Date: Thu, 28 Aug 2025 19:08:38 +0200 Subject: [PATCH 5/5] Separate index and policy deletion --- .../create_enrich_policy/create_enrich_policy.ts | 4 ++++ .../enrich_policies_tab/enrich_policies_tab.ts | 6 +++++- .../management/index_management/create_enrich_policy.ts | 4 ++++ .../management/index_management/enrich_policies.ts | 5 +++++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/x-pack/platform/test/functional/apps/index_management/create_enrich_policy/create_enrich_policy.ts b/x-pack/platform/test/functional/apps/index_management/create_enrich_policy/create_enrich_policy.ts index 83ee271631be4..ef37c9554743f 100644 --- a/x-pack/platform/test/functional/apps/index_management/create_enrich_policy/create_enrich_policy.ts +++ b/x-pack/platform/test/functional/apps/index_management/create_enrich_policy/create_enrich_policy.ts @@ -53,6 +53,10 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { try { await es.enrich.deletePolicy({ name: POLICY_NAME }); + } catch (e) { + log.debug(`[Teardown error] Error deleting test policy: ${e.message}`); + } + try { await es.indices.delete({ index: INDEX_NAME }); } catch (e) { log.debug(`[Teardown error] Error deleting test index: ${e.message}`); diff --git a/x-pack/platform/test/functional/apps/index_management/enrich_policies_tab/enrich_policies_tab.ts b/x-pack/platform/test/functional/apps/index_management/enrich_policies_tab/enrich_policies_tab.ts index 339e541919e28..13eced5d53006 100644 --- a/x-pack/platform/test/functional/apps/index_management/enrich_policies_tab/enrich_policies_tab.ts +++ b/x-pack/platform/test/functional/apps/index_management/enrich_policies_tab/enrich_policies_tab.ts @@ -63,10 +63,14 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await log.debug('Cleaning up created index and policy'); try { await es.enrich.deletePolicy({ name: ENRICH_POLICY_NAME }); - await es.indices.delete({ index: ENRICH_INDEX_NAME }); } catch (e) { log.debug(`[Teardown error] Error deleting test policy: ${e.message}`); } + try { + await es.indices.delete({ index: ENRICH_INDEX_NAME }); + } catch (e) { + log.debug(`[Teardown error] Error deleting test index: ${e.message}`); + } }); it('shows enrich policies page and docs link', async () => { diff --git a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/create_enrich_policy.ts b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/create_enrich_policy.ts index 96021c5eeeed9..2b2a19d8439b1 100644 --- a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/create_enrich_policy.ts +++ b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/create_enrich_policy.ts @@ -55,6 +55,10 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { try { await es.enrich.deletePolicy({ name: POLICY_NAME }); + } catch (e) { + log.debug(`[Teardown error] Error deleting test policy: ${e.message}`); + } + try { await es.indices.delete({ index: INDEX_NAME }); } catch (e) { log.debug(`[Teardown error] Error deleting test index: ${e.message}`); diff --git a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/enrich_policies.ts b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/enrich_policies.ts index f7f7b499b3507..3c1ff322c1a97 100644 --- a/x-pack/platform/test/serverless/functional/test_suites/management/index_management/enrich_policies.ts +++ b/x-pack/platform/test/serverless/functional/test_suites/management/index_management/enrich_policies.ts @@ -57,8 +57,13 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { after(async () => { log.debug('Cleaning up created index and policy'); + try { await es.enrich.deletePolicy({ name: ENRICH_POLICY_NAME }); + } catch (e) { + log.debug(`[Teardown error] Error deleting test policy: ${e.message}`); + } + try { await es.indices.delete({ index: ENRICH_INDEX_NAME }); } catch (e) { log.debug(`[Teardown error] Error deleting test index: ${e.message}`);