From 07dbbedfe876ded3519c4f8c3e0093df0325188d Mon Sep 17 00:00:00 2001 From: gbamparop Date: Fri, 26 Jan 2024 16:46:00 +0000 Subject: [PATCH 1/6] Rename data-test-subj and page objects --- docs/developer/plugin-list.asciidoc | 2 +- .../discover_topnav_serverless.test.tsx | 10 +- .../log_explorer_tabs/log_explorer_tabs.tsx | 8 +- .../custom_logs/install_elastic_agent.cy.ts | 2 +- .../e2e/cypress/e2e/logs/system_logs.cy.ts | 4 +- .../logs_explorer/README.md | 14 +- .../flyout_detail/flyout_header.tsx | 8 +- .../flyout_detail/flyout_highlights.tsx | 34 +- .../sub_components/timestamp.tsx | 2 +- .../components/virtual_columns/content.tsx | 6 +- .../customizations/custom_flyout_content.tsx | 2 +- .../public/utils/get_data_view_test_subj.ts | 2 +- .../observability_logs_explorer/README.md | 6 +- .../public/components/discover_link.tsx | 4 +- .../components/log_explorer_top_nav_menu.tsx | 6 +- .../public/components/onboarding_link.tsx | 2 +- .../public/routes/main/main_route.tsx | 2 +- .../apps/observability_log_explorer/app.ts | 8 +- .../columns_selection.ts | 18 +- .../dataset_selection_state.ts | 28 +- .../dataset_selector.ts | 342 +++++++++--------- .../filter_controls.ts | 4 +- .../apps/observability_log_explorer/flyout.ts | 20 +- .../flyout_highlights.ts | 102 +++--- .../observability_log_explorer/header_menu.ts | 24 +- .../apps/observability_log_explorer/index.ts | 2 +- x-pack/test/functional/config.base.js | 2 +- x-pack/test/functional/page_objects/index.ts | 4 +- .../observability_log_explorer.ts | 14 +- .../test_serverless/functional/config.base.ts | 2 +- .../observability_log_explorer/app.ts | 8 +- .../columns_selection.ts | 10 +- .../dataset_selection_state.ts | 28 +- .../dataset_selector.ts | 342 +++++++++--------- .../filter_controls.ts | 4 +- .../observability_log_explorer/flyout.ts | 20 +- .../flyout_highlights.ts | 102 +++--- .../observability_log_explorer/header_menu.ts | 34 +- .../observability_log_explorer/index.ts | 2 +- 39 files changed, 621 insertions(+), 613 deletions(-) diff --git a/docs/developer/plugin-list.asciidoc b/docs/developer/plugin-list.asciidoc index fe9a0d40f5d23..c3ffa6339f320 100644 --- a/docs/developer/plugin-list.asciidoc +++ b/docs/developer/plugin-list.asciidoc @@ -648,7 +648,7 @@ using the CURL scripts in the scripts folder. |{kib-repo}blob/{branch}/x-pack/plugins/observability_solution/logs_explorer/README.md[logsExplorer] -|This plugin is home to the component and related types. It implements several of the underlying concepts that the Observability Log Explorer app builds upon. +|This plugin is home to the component and related types. It implements several of the underlying concepts that the Observability Logs Explorer app builds upon. |{kib-repo}blob/{branch}/x-pack/plugins/logs_shared/README.md[logsShared] diff --git a/src/plugins/discover/public/application/main/components/top_nav/discover_topnav_serverless.test.tsx b/src/plugins/discover/public/application/main/components/top_nav/discover_topnav_serverless.test.tsx index 85d273728f6a2..72c1667172961 100644 --- a/src/plugins/discover/public/application/main/components/top_nav/discover_topnav_serverless.test.tsx +++ b/src/plugins/discover/public/application/main/components/top_nav/discover_topnav_serverless.test.tsx @@ -130,8 +130,8 @@ describe('DiscoverTopNavServerless', () => { }); }); - describe('LogExplorerTabs', () => { - it('should render when showLogExplorerTabs is true', async () => { + describe('LogsExplorerTabs', () => { + it('should render when showLogsExplorerTabs is true', async () => { mockUseKibana.mockReturnValue({ services: { ...mockDiscoverService, @@ -148,12 +148,12 @@ describe('DiscoverTopNavServerless', () => { const topNav = screen.queryByTestId('discoverTopNavServerless'); expect(topNav).not.toBeNull(); await waitFor(() => { - const logExplorerTabs = screen.queryByTestId('logExplorerTabs'); + const logExplorerTabs = screen.queryByTestId('logsExplorerTabs'); expect(logExplorerTabs).not.toBeNull(); }); }); - it('should not render when showLogExplorerTabs is false', async () => { + it('should not render when showLogsExplorerTabs is false', async () => { mockUseKibana.mockReturnValue({ services: { ...mockDiscoverService, @@ -169,7 +169,7 @@ describe('DiscoverTopNavServerless', () => { const topNav = screen.queryByTestId('discoverTopNavServerless'); expect(topNav).not.toBeNull(); await waitFor(() => { - const logExplorerTabs = screen.queryByTestId('logExplorerTabs'); + const logExplorerTabs = screen.queryByTestId('logsExplorerTabs'); expect(logExplorerTabs).toBeNull(); }); }); diff --git a/src/plugins/discover/public/components/log_explorer_tabs/log_explorer_tabs.tsx b/src/plugins/discover/public/components/log_explorer_tabs/log_explorer_tabs.tsx index ea9504d6b7ba1..fb9895b62b269 100644 --- a/src/plugins/discover/public/components/log_explorer_tabs/log_explorer_tabs.tsx +++ b/src/plugins/discover/public/components/log_explorer_tabs/log_explorer_tabs.tsx @@ -41,7 +41,7 @@ export const LogExplorerTabs = ({ services, selectedTab }: LogExplorerTabsProps) }); return ( - + - {i18n.translate('discover.logExplorerTabs.discover', { + {i18n.translate('discover.logsExplorerTabs.discover', { defaultMessage: 'Discover', })} @@ -58,9 +58,9 @@ export const LogExplorerTabs = ({ services, selectedTab }: LogExplorerTabsProps) href={logExplorerUrl} onClick={navigateToLogExplorer} css={{ '.euiTab__content': { lineHeight: euiTheme.size.xxxl } }} - data-test-subj="logExplorerTab" + data-test-subj="logsExplorerTab" > - {i18n.translate('discover.logExplorerTabs.logExplorer', { + {i18n.translate('discover.logsExplorerTabs.logsExplorer', { defaultMessage: 'Logs Explorer', })} diff --git a/x-pack/plugins/observability_onboarding/e2e/cypress/e2e/logs/custom_logs/install_elastic_agent.cy.ts b/x-pack/plugins/observability_onboarding/e2e/cypress/e2e/logs/custom_logs/install_elastic_agent.cy.ts index c4d5edee7d3af..c0c783a852a25 100644 --- a/x-pack/plugins/observability_onboarding/e2e/cypress/e2e/logs/custom_logs/install_elastic_agent.cy.ts +++ b/x-pack/plugins/observability_onboarding/e2e/cypress/e2e/logs/custom_logs/install_elastic_agent.cy.ts @@ -618,7 +618,7 @@ describe('[Logs onboarding] Custom logs - install elastic agent', () => { .should('exist'); }); - it('when user clicks on Explore Logs it navigates to observability log explorer', () => { + it('when user clicks on Explore Logs it navigates to observability logs explorer', () => { cy.wait('@checkOnboardingProgress'); cy.getByTestSubj('obltOnboardingExploreLogs').should('exist').click(); diff --git a/x-pack/plugins/observability_onboarding/e2e/cypress/e2e/logs/system_logs.cy.ts b/x-pack/plugins/observability_onboarding/e2e/cypress/e2e/logs/system_logs.cy.ts index 80d5e042c1239..1af201ca2c357 100644 --- a/x-pack/plugins/observability_onboarding/e2e/cypress/e2e/logs/system_logs.cy.ts +++ b/x-pack/plugins/observability_onboarding/e2e/cypress/e2e/logs/system_logs.cy.ts @@ -673,7 +673,7 @@ describe('[Logs onboarding] System logs', () => { cy.visitKibana('/app/observabilityOnboarding/systemLogs'); }); - it('when users clicks on Explore logs they navigate to log explorer - All logs', () => { + it('when users clicks on Explore logs they navigate to logs explorer - All logs', () => { cy.wait('@systemIntegrationInstall'); cy.getByTestSubj('obltOnboardingExploreLogs').should('exist').click(); @@ -692,7 +692,7 @@ describe('[Logs onboarding] System logs', () => { cy.visitKibana('/app/observabilityOnboarding/systemLogs'); }); - it('when users clicks on Explore logs they navigate to log explorer and System integration is selected', () => { + it('when users clicks on Explore logs they navigate to logs explorer and System integration is selected', () => { cy.wait('@systemIntegrationInstall'); cy.getByTestSubj('obltOnboardingExploreLogs').should('exist').click(); diff --git a/x-pack/plugins/observability_solution/logs_explorer/README.md b/x-pack/plugins/observability_solution/logs_explorer/README.md index 1a46e08981984..31d1f43498e22 100755 --- a/x-pack/plugins/observability_solution/logs_explorer/README.md +++ b/x-pack/plugins/observability_solution/logs_explorer/README.md @@ -1,10 +1,10 @@ -# Log Explorer +# Logs Explorer -This plugin is home to the `` component and related types. It implements several of the underlying concepts that the [Observability Log Explorer app](../observability_solution/observability_logs_explorer) builds upon. +This plugin is home to the `` component and related types. It implements several of the underlying concepts that the [Observability Logs Explorer app](../observability_solution/observability_logs_explorer) builds upon. ## Developing the `` component -⚠ The Log Explorer is in early stages of development, so the following partly describes the current situation and partly the intended future scenario. +⚠ The Logs Explorer is in early stages of development, so the following partly describes the current situation and partly the intended future scenario. ### Dependencies @@ -20,11 +20,11 @@ While not fully realized yet, the dependency graph would roughly resemble the fo ```mermaid flowchart TD -obs_log_explorer_app(Observability Log Explorer app) +obs_log_explorer_app(Observability Logs Explorer app) obs_apps(Other Observability apps) -obs_log_explorer_component(Observability Log Explorer component) +obs_log_explorer_component(Observability Logs Explorer component) other_apps(Other non-Observability apps) -log_explorer_component(Log Explorer component) +log_explorer_component(Logs Explorer component) platform(Kibana Platform) discover(Discover Main container) fleet(Fleet / EPM) @@ -47,7 +47,7 @@ When designing the API we face two conflicting goals: - It should be easy to consume by any non-observability app. This means... - its API needs to be relatively stable and straightforward. - it should not perform any page-wide changes that could interfere with consuming app's page state (such as URL changes). -- It should be extensible so the Observability Log Explorer can build on top of this. +- It should be extensible so the Observability Logs Explorer can build on top of this. In its current state the `` achieves neither goal. To resolve the tension in the future we could export two variants with different sets of properties. diff --git a/x-pack/plugins/observability_solution/logs_explorer/public/components/flyout_detail/flyout_header.tsx b/x-pack/plugins/observability_solution/logs_explorer/public/components/flyout_detail/flyout_header.tsx index f8c34d5dd8346..b26f90145b6a5 100644 --- a/x-pack/plugins/observability_solution/logs_explorer/public/components/flyout_detail/flyout_header.tsx +++ b/x-pack/plugins/observability_solution/logs_explorer/public/components/flyout_detail/flyout_header.tsx @@ -54,7 +54,7 @@ export function FlyoutHeader({ doc }: { doc: FlyoutDoc }) { @@ -71,7 +71,7 @@ export function FlyoutHeader({ doc }: { doc: FlyoutDoc }) { const contentField = hasMessageField && ( - + @@ -110,9 +110,9 @@ export function FlyoutHeader({ doc }: { doc: FlyoutDoc }) { buttonContent={accordionTitle} paddingSize="m" initialIsOpen={true} - data-test-subj={`logExplorerFlyoutHeaderSection${flyoutContentLabel}`} + data-test-subj={`logsExplorerFlyoutHeaderSection${flyoutContentLabel}`} > - + {hasMessageField ? contentField : logLevelAndTimestamp} diff --git a/x-pack/plugins/observability_solution/logs_explorer/public/components/flyout_detail/flyout_highlights.tsx b/x-pack/plugins/observability_solution/logs_explorer/public/components/flyout_detail/flyout_highlights.tsx index 6ee16be2fddae..5e8af29566372 100644 --- a/x-pack/plugins/observability_solution/logs_explorer/public/components/flyout_detail/flyout_highlights.tsx +++ b/x-pack/plugins/observability_solution/logs_explorer/public/components/flyout_detail/flyout_highlights.tsx @@ -49,11 +49,11 @@ export function FlyoutHighlights({ {formattedDoc[constants.SERVICE_NAME_FIELD] && ( {formattedDoc[constants.CLOUD_PROVIDER_FIELD] && ( {formattedDoc[constants.LOG_FILE_PATH_FIELD] && ( + {timestamp} ); diff --git a/x-pack/plugins/observability_solution/logs_explorer/public/components/virtual_columns/content.tsx b/x-pack/plugins/observability_solution/logs_explorer/public/components/virtual_columns/content.tsx index a7617a59d5287..3055425b5e59c 100644 --- a/x-pack/plugins/observability_solution/logs_explorer/public/components/virtual_columns/content.tsx +++ b/x-pack/plugins/observability_solution/logs_explorer/public/components/virtual_columns/content.tsx @@ -31,9 +31,9 @@ const LogMessage = ({ field, value }: { field?: string; value: string }) => { return ( {renderFieldPrefix && ( - {field} + {field} )} - + {value} @@ -108,7 +108,7 @@ export const Content = ({ fieldFormats={fieldFormats} shouldShowFieldHandler={shouldShowFieldHandler} maxEntries={50} - dataTestSubj="logExplorerCellDescriptionList" + dataTestSubj="logsExplorerCellDescriptionList" className="logsExplorerVirtualColumn__sourceDocument" /> )} diff --git a/x-pack/plugins/observability_solution/logs_explorer/public/customizations/custom_flyout_content.tsx b/x-pack/plugins/observability_solution/logs_explorer/public/customizations/custom_flyout_content.tsx index cd74ed1c4c81c..958070c6041a2 100644 --- a/x-pack/plugins/observability_solution/logs_explorer/public/customizations/custom_flyout_content.tsx +++ b/x-pack/plugins/observability_solution/logs_explorer/public/customizations/custom_flyout_content.tsx @@ -46,7 +46,7 @@ const CustomFlyoutContent = ({ <> - {/* Apply custom Log Explorer detail */} + {/* Apply custom Logs Explorer detail */} {renderCustomizedContent(flyoutContentProps)} diff --git a/x-pack/plugins/observability_solution/logs_explorer/public/utils/get_data_view_test_subj.ts b/x-pack/plugins/observability_solution/logs_explorer/public/utils/get_data_view_test_subj.ts index 8cf915b64691c..0beda0992aacf 100644 --- a/x-pack/plugins/observability_solution/logs_explorer/public/utils/get_data_view_test_subj.ts +++ b/x-pack/plugins/observability_solution/logs_explorer/public/utils/get_data_view_test_subj.ts @@ -5,7 +5,7 @@ * 2.0. */ -const BASE_DATA_VIEW_TEST_SUBJ = 'logExplorerDataView'; +const BASE_DATA_VIEW_TEST_SUBJ = 'logsExplorerDataView'; const publicDataViewPatternsSet = new Set(['logs-*', 'logstash-*', 'filebeat-*']); diff --git a/x-pack/plugins/observability_solution/observability_logs_explorer/README.md b/x-pack/plugins/observability_solution/observability_logs_explorer/README.md index ae3c50138ab46..ac50e66ddbdb8 100644 --- a/x-pack/plugins/observability_solution/observability_logs_explorer/README.md +++ b/x-pack/plugins/observability_solution/observability_logs_explorer/README.md @@ -1,4 +1,4 @@ -# Observability Log Explorer +# Observability Logs Explorer This plugin provides an app based on the `LogExplorer` component from the `logs_explorer` plugin, but adds observability-specific affordances. @@ -39,11 +39,11 @@ yarn test:ftr:runner --config ./x-pack/test_serverless/functional/test_suites/ob ## Checktypes -#### Log Explorer +#### Logs Explorer ``` node scripts/type_check.js --project x-pack/plugins/observability_solution/logs_explorer/tsconfig.json ``` -#### Observability Log Explorer +#### Observability Logs Explorer ``` node scripts/type_check.js --project x-pack/plugins/observability_solution/observability_logs_explorer/tsconfig.json ``` diff --git a/x-pack/plugins/observability_solution/observability_logs_explorer/public/components/discover_link.tsx b/x-pack/plugins/observability_solution/observability_logs_explorer/public/components/discover_link.tsx index a9f50468a8db9..755b01f820909 100644 --- a/x-pack/plugins/observability_solution/observability_logs_explorer/public/components/discover_link.tsx +++ b/x-pack/plugins/observability_solution/observability_logs_explorer/public/components/discover_link.tsx @@ -74,7 +74,7 @@ export const DiscoverLinkForUnknownState = React.memo(() => ( {discoverLinkTitle} @@ -105,7 +105,7 @@ export const DiscoverLink = React.memo( {...discoverLinkProps} color="primary" iconType="discoverApp" - data-test-subj="logExplorerDiscoverFallbackLink" + data-test-subj="logsExplorerDiscoverFallbackLink" > {discoverLinkTitle} diff --git a/x-pack/plugins/observability_solution/observability_logs_explorer/public/components/log_explorer_top_nav_menu.tsx b/x-pack/plugins/observability_solution/observability_logs_explorer/public/components/log_explorer_top_nav_menu.tsx index a9e1135cbb099..5bdf9348db5d5 100644 --- a/x-pack/plugins/observability_solution/observability_logs_explorer/public/components/log_explorer_top_nav_menu.tsx +++ b/x-pack/plugins/observability_solution/observability_logs_explorer/public/components/log_explorer_top_nav_menu.tsx @@ -40,7 +40,7 @@ const ServerlessTopNav = () => { const { ObservabilityAIAssistantActionMenuItem } = services.observabilityAIAssistant; return ( - + @@ -106,7 +106,7 @@ const StatefulTopNav = () => { chrome.setBreadcrumbsAppendExtension({ content: toMountPoint( { return ( - + diff --git a/x-pack/plugins/observability_solution/observability_logs_explorer/public/components/onboarding_link.tsx b/x-pack/plugins/observability_solution/observability_logs_explorer/public/components/onboarding_link.tsx index 261405c766024..be7e0722210f5 100644 --- a/x-pack/plugins/observability_solution/observability_logs_explorer/public/components/onboarding_link.tsx +++ b/x-pack/plugins/observability_solution/observability_logs_explorer/public/components/onboarding_link.tsx @@ -48,7 +48,7 @@ export const OnboardingLink = React.memo(({ urlService }: { urlService: BrowserU fill size="s" iconType="indexOpen" - data-test-subj="logExplorerOnboardingLink" + data-test-subj="logsExplorerOnboardingLink" > {onboardingLinkTitle} diff --git a/x-pack/plugins/observability_solution/observability_logs_explorer/public/routes/main/main_route.tsx b/x-pack/plugins/observability_solution/observability_logs_explorer/public/routes/main/main_route.tsx index e8b93562915c4..120c33f4e11a8 100644 --- a/x-pack/plugins/observability_solution/observability_logs_explorer/public/routes/main/main_route.tsx +++ b/x-pack/plugins/observability_solution/observability_logs_explorer/public/routes/main/main_route.tsx @@ -83,7 +83,7 @@ const InitializingContent = React.memo(() => ( title={ } /> diff --git a/x-pack/test/functional/apps/observability_log_explorer/app.ts b/x-pack/test/functional/apps/observability_log_explorer/app.ts index 5d6c85e3c7518..508d9720fa025 100644 --- a/x-pack/test/functional/apps/observability_log_explorer/app.ts +++ b/x-pack/test/functional/apps/observability_log_explorer/app.ts @@ -9,7 +9,7 @@ import { log, timerange } from '@kbn/apm-synthtrace-client'; import { FtrProviderContext } from './config'; export default function ({ getService, getPageObjects }: FtrProviderContext) { - const PageObjects = getPageObjects(['common', 'navigationalSearch', 'observabilityLogExplorer']); + const PageObjects = getPageObjects(['common', 'navigationalSearch', 'observabilityLogsExplorer']); const testSubjects = getService('testSubjects'); const synthtrace = getService('logSynthtraceEsClient'); const dataGrid = getService('dataGrid'); @@ -17,14 +17,14 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('Application', () => { it('is shown in the global search', async () => { await PageObjects.common.navigateToApp('home'); - await PageObjects.navigationalSearch.searchFor('log explorer'); + await PageObjects.navigationalSearch.searchFor('logs explorer'); const results = await PageObjects.navigationalSearch.getDisplayedResults(); expect(results[0].label).to.eql('Logs Explorer'); }); it('is shown in the observability side navigation', async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); await testSubjects.existOrFail('observability-nav-observability-log-explorer-explorer'); }); @@ -33,7 +33,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const to = '2023-08-03T10:24:14.091Z'; const COUNT = 5; await synthtrace.index(generateLogsData({ from, to, count: COUNT })); - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); const docCount = await dataGrid.getDocCount(); expect(docCount).to.be(COUNT); diff --git a/x-pack/test/functional/apps/observability_log_explorer/columns_selection.ts b/x-pack/test/functional/apps/observability_log_explorer/columns_selection.ts index 0433b3a9762ce..e6291e4d8fc01 100644 --- a/x-pack/test/functional/apps/observability_log_explorer/columns_selection.ts +++ b/x-pack/test/functional/apps/observability_log_explorer/columns_selection.ts @@ -13,7 +13,7 @@ const defaultLogColumns = ['@timestamp', 'resource', 'content']; export default function ({ getService, getPageObjects }: FtrProviderContext) { const retry = getService('retry'); - const PageObjects = getPageObjects(['discover', 'observabilityLogExplorer']); + const PageObjects = getPageObjects(['discover', 'observabilityLogsExplorer']); const synthtrace = getService('logSynthtraceEsClient'); const dataGrid = getService('dataGrid'); const testSubjects = getService('testSubjects'); @@ -21,8 +21,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const to = '2023-12-27T10:25:14.091Z'; const TEST_TIMEOUT = 10 * 1000; // 10 secs - const navigateToLogExplorer = () => - PageObjects.observabilityLogExplorer.navigateTo({ + const navigateToLogsExplorer = () => + PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { time: { from, @@ -32,10 +32,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }, }); - describe('When the log explorer loads', () => { + describe('When the logs explorer loads', () => { before(async () => { await synthtrace.index(generateLogsData({ to })); - await navigateToLogExplorer(); + await navigateToLogsExplorer(); }); after(async () => { @@ -50,7 +50,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('should restore the table columns from the URL state if exists', async () => { - await PageObjects.observabilityLogExplorer.navigateTo({ + await PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { time: { from, @@ -123,7 +123,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(cellValue.includes('event.original')).to.be(false); const cellAttribute = await cellElement.findByTestSubject( - 'logExplorerCellDescriptionList' + 'logsExplorerCellDescriptionList' ); expect(cellAttribute).not.to.be.empty(); }); @@ -137,7 +137,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('on cell expansion with message field should open regular popover', async () => { - await navigateToLogExplorer(); + await navigateToLogsExplorer(); await retry.tryForTime(TEST_TIMEOUT, async () => { await dataGrid.clickCellExpandButton(3, 4); await testSubjects.existOrFail('euiDataGridExpansionPopover'); @@ -158,7 +158,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('virtual column cell actions', async () => { beforeEach(async () => { - await navigateToLogExplorer(); + await navigateToLogsExplorer(); }); it('should render a popover with cell actions when a chip on content column is clicked', async () => { await retry.tryForTime(TEST_TIMEOUT, async () => { diff --git a/x-pack/test/functional/apps/observability_log_explorer/dataset_selection_state.ts b/x-pack/test/functional/apps/observability_log_explorer/dataset_selection_state.ts index d8083c4e1e2e1..8cf11615152e1 100644 --- a/x-pack/test/functional/apps/observability_log_explorer/dataset_selection_state.ts +++ b/x-pack/test/functional/apps/observability_log_explorer/dataset_selection_state.ts @@ -25,14 +25,14 @@ const azureActivityDatasetSelection: DatasetSelectionPlain = { export default function ({ getService, getPageObjects }: FtrProviderContext) { const browser = getService('browser'); const retry = getService('retry'); - const PageObjects = getPageObjects(['common', 'observabilityLogExplorer']); + const PageObjects = getPageObjects(['common', 'observabilityLogsExplorer']); describe('DatasetSelection initialization and update', () => { describe('when no dataset selection is given', () => { it('should initialize the "All logs" selection', async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); const datasetSelectionTitle = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButtonText(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButtonText(); expect(datasetSelectionTitle).to.be('All logs'); }); @@ -40,20 +40,20 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('when a dataset selection is given', () => { it('should restore the selection from a valid encoded index', async () => { - await PageObjects.observabilityLogExplorer.navigateTo({ + await PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { datasetSelection: azureActivityDatasetSelection, }, }); const datasetSelectionTitle = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButtonText(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButtonText(); expect(datasetSelectionTitle).to.be('[Azure Logs] activitylogs'); }); it('should fallback to the "All logs" selection and notify the user of an invalid encoded index', async () => { - await PageObjects.observabilityLogExplorer.navigateToWithUncheckedState({ + await PageObjects.observabilityLogsExplorer.navigateToWithUncheckedState({ pageState: { v: 1, datasetSelection: { @@ -63,41 +63,41 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); const datasetSelectionTitle = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButtonText(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButtonText(); - await PageObjects.observabilityLogExplorer.assertRestoreFailureToastExist(); + await PageObjects.observabilityLogsExplorer.assertRestoreFailureToastExist(); expect(datasetSelectionTitle).to.be('All logs'); }); }); describe('when navigating back and forth on the page history', () => { it('should decode and restore the selection for the current index', async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); const allDatasetSelectionTitle = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButtonText(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButtonText(); expect(allDatasetSelectionTitle).to.be('All logs'); - await PageObjects.observabilityLogExplorer.navigateTo({ + await PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { datasetSelection: azureActivityDatasetSelection, }, }); const azureDatasetSelectionTitle = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButtonText(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButtonText(); expect(azureDatasetSelectionTitle).to.be('[Azure Logs] activitylogs'); // Go back to previous page selection await retry.tryForTime(30 * 1000, async () => { await browser.goBack(); const backNavigationDatasetSelectionTitle = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButtonText(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButtonText(); expect(backNavigationDatasetSelectionTitle).to.be('All logs'); }); // Go forward to previous page selection await retry.tryForTime(30 * 1000, async () => { await browser.goForward(); const forwardNavigationDatasetSelectionTitle = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButtonText(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButtonText(); expect(forwardNavigationDatasetSelectionTitle).to.be('[Azure Logs] activitylogs'); }); }); diff --git a/x-pack/test/functional/apps/observability_log_explorer/dataset_selector.ts b/x-pack/test/functional/apps/observability_log_explorer/dataset_selector.ts index 1d7eae0129ce6..918ce47f871f2 100644 --- a/x-pack/test/functional/apps/observability_log_explorer/dataset_selector.ts +++ b/x-pack/test/functional/apps/observability_log_explorer/dataset_selector.ts @@ -26,7 +26,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const esArchiver = getService('esArchiver'); const kibanaServer = getService('kibanaServer'); const retry = getService('retry'); - const PageObjects = getPageObjects(['common', 'discover', 'observabilityLogExplorer']); + const PageObjects = getPageObjects(['common', 'discover', 'observabilityLogsExplorer']); const noIntegrationsTitle = 'No integrations found'; const noUncategorizedTitle = 'No data streams found'; @@ -34,7 +34,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('Dataset Selector', () => { before(async () => { await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover'); - await PageObjects.observabilityLogExplorer.removeInstalledPackages(); + await PageObjects.observabilityLogsExplorer.removeInstalledPackages(); }); after(async () => { @@ -43,18 +43,18 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('as consistent behavior', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); }); beforeEach(async () => { await browser.refresh(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); }); it('should always display the Integrations Uncategorized and Data Views top level tabs', async () => { - const integrationsTab = await PageObjects.observabilityLogExplorer.getIntegrationsTab(); - const uncategorizedTab = await PageObjects.observabilityLogExplorer.getUncategorizedTab(); - const dataViewsTab = await PageObjects.observabilityLogExplorer.getDataViewsTab(); + const integrationsTab = await PageObjects.observabilityLogsExplorer.getIntegrationsTab(); + const uncategorizedTab = await PageObjects.observabilityLogsExplorer.getUncategorizedTab(); + const dataViewsTab = await PageObjects.observabilityLogsExplorer.getDataViewsTab(); expect(await integrationsTab.isDisplayed()).to.be(true); expect(await integrationsTab.getVisibleText()).to.be('Integrations'); @@ -66,7 +66,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should always display the "Show all logs" action', async () => { const allLogDatasetButton = - await PageObjects.observabilityLogExplorer.getAllLogDatasetsButton(); + await PageObjects.observabilityLogsExplorer.getAllLogDatasetsButton(); const allLogDatasetTitle = await allLogDatasetButton.getVisibleText(); @@ -78,17 +78,17 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { // Skip the test in case network condition utils are not available try { await retry.try(async () => { - await PageObjects.observabilityLogExplorer.assertListStatusEmptyPromptExistsWithTitle( + await PageObjects.observabilityLogsExplorer.assertListStatusEmptyPromptExistsWithTitle( noIntegrationsTitle ); }); await PageObjects.common.sleep(5000); await browser.setNetworkConditions('OFFLINE'); - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('a'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('a'); await retry.try(async () => { - await PageObjects.observabilityLogExplorer.assertListStatusErrorPromptExistsWithTitle( + await PageObjects.observabilityLogsExplorer.assertListStatusErrorPromptExistsWithTitle( noIntegrationsTitle ); }); @@ -100,14 +100,14 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('should display an empty prompt for no integrations', async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(menuEntries.length).to.be(0); - await PageObjects.observabilityLogExplorer.assertListStatusEmptyPromptExistsWithTitle( + await PageObjects.observabilityLogsExplorer.assertListStatusEmptyPromptExistsWithTitle( noIntegrationsTitle ); }); @@ -119,10 +119,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { try { await browser.setNetworkConditions('SLOW_3G'); // Almost stuck network conditions const uncategorizedTab = - await PageObjects.observabilityLogExplorer.getUncategorizedTab(); + await PageObjects.observabilityLogsExplorer.getUncategorizedTab(); await uncategorizedTab.click(); - await PageObjects.observabilityLogExplorer.assertLoadingSkeletonExists(); + await PageObjects.observabilityLogsExplorer.assertLoadingSkeletonExists(); await browser.restoreNetworkConditions(); } catch (error) { @@ -131,23 +131,24 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('should display an error prompt if could not retrieve the datasets', async function () { - const uncategorizedTab = await PageObjects.observabilityLogExplorer.getUncategorizedTab(); + const uncategorizedTab = + await PageObjects.observabilityLogsExplorer.getUncategorizedTab(); await uncategorizedTab.click(); // Skip the test in case network condition utils are not available try { await retry.try(async () => { - await PageObjects.observabilityLogExplorer.assertListStatusEmptyPromptExistsWithTitle( + await PageObjects.observabilityLogsExplorer.assertListStatusEmptyPromptExistsWithTitle( noUncategorizedTitle ); }); await PageObjects.common.sleep(5000); await browser.setNetworkConditions('OFFLINE'); - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('a'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('a'); await retry.try(async () => { - await PageObjects.observabilityLogExplorer.assertListStatusErrorPromptExistsWithTitle( + await PageObjects.observabilityLogsExplorer.assertListStatusErrorPromptExistsWithTitle( noUncategorizedTitle ); }); @@ -159,18 +160,19 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('should display an empty prompt for no uncategorized data streams', async () => { - const uncategorizedTab = await PageObjects.observabilityLogExplorer.getUncategorizedTab(); + const uncategorizedTab = + await PageObjects.observabilityLogsExplorer.getUncategorizedTab(); await uncategorizedTab.click(); - const uncategorizedEntries = await PageObjects.observabilityLogExplorer + const uncategorizedEntries = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(uncategorizedEntries.length).to.be(0); - await PageObjects.observabilityLogExplorer.assertListStatusEmptyPromptExistsWithTitle( + await PageObjects.observabilityLogsExplorer.assertListStatusEmptyPromptExistsWithTitle( noUncategorizedTitle ); }); @@ -185,7 +187,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { 'x-pack/test/functional/es_archives/observability_log_explorer/data_streams' ); cleanupIntegrationsSetup = - await PageObjects.observabilityLogExplorer.setupInitialIntegrations(); + await PageObjects.observabilityLogsExplorer.setupInitialIntegrations(); }); after(async () => { @@ -197,16 +199,16 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('when open on the integrations tab', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); }); beforeEach(async () => { await browser.refresh(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); }); it('should display a list of installed integrations', async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations.length).to.be(3); expect(integrations).to.eql(initialPackagesTexts); @@ -214,55 +216,55 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should sort the integrations list by the clicked sorting option', async () => { // Test ascending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('asc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('asc'); await retry.try(async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql(initialPackagesTexts); }); // Test descending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('desc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('desc'); await retry.try(async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql(initialPackagesTexts.slice().reverse()); }); // Test back ascending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('asc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('asc'); await retry.try(async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql(initialPackagesTexts); }); }); it('should filter the integrations list by the typed integration name', async () => { - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('system'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('system'); await retry.try(async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql([initialPackageMap.system]); }); - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('a'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('a'); await retry.try(async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql([initialPackageMap.apache, initialPackageMap.aws]); }); }); it('should display an empty prompt when the search does not match any result', async () => { - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('no result search text'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('no result search text'); await retry.try(async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations.length).to.be(0); }); - await PageObjects.observabilityLogExplorer.assertListStatusEmptyPromptExistsWithTitle( + await PageObjects.observabilityLogsExplorer.assertListStatusEmptyPromptExistsWithTitle( noIntegrationsTitle ); }); @@ -270,28 +272,28 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should load more integrations by scrolling to the end of the list', async () => { // Install more integrations and reload the page const cleanupAdditionalSetup = - await PageObjects.observabilityLogExplorer.setupAdditionalIntegrations(); + await PageObjects.observabilityLogsExplorer.setupAdditionalIntegrations(); await browser.refresh(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); // Initially fetched integrations await retry.try(async () => { - const { nodes } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { nodes } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(nodes.length).to.be(15); await nodes.at(-1)?.scrollIntoView(); }); // Load more integrations await retry.try(async () => { - const { nodes } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { nodes } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(nodes.length).to.be(20); await nodes.at(-1)?.scrollIntoView(); }); // No other integrations to load after scrolling to last integration await retry.try(async () => { - const { nodes } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { nodes } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(nodes.length).to.be(20); }); @@ -300,28 +302,28 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('clicking on integration and moving into the second navigation level', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); }); beforeEach(async () => { await browser.refresh(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); }); it('should display a list of available datasets', async () => { await retry.try(async () => { - const { nodes } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { nodes } = await PageObjects.observabilityLogsExplorer.getIntegrations(); await nodes[0].click(); }); await retry.try(async () => { const [panelTitleNode, integrationDatasetEntries] = - await PageObjects.observabilityLogExplorer + await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu: WebElementWrapper) => Promise.all([ - PageObjects.observabilityLogExplorer.getPanelTitle(menu), - PageObjects.observabilityLogExplorer.getPanelEntries(menu), + PageObjects.observabilityLogsExplorer.getPanelTitle(menu), + PageObjects.observabilityLogsExplorer.getPanelEntries(menu), ]) ); @@ -333,27 +335,27 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should sort the datasets list by the clicked sorting option', async () => { await retry.try(async () => { - const { nodes } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { nodes } = await PageObjects.observabilityLogsExplorer.getIntegrations(); await nodes[0].click(); }); await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelTitle(menu) + PageObjects.observabilityLogsExplorer.getPanelTitle(menu) ); expect(await panelTitleNode.getVisibleText()).to.be('Apache HTTP Server'); }); // Test ascending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('asc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('asc'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(await menuEntries[0].getVisibleText()).to.be('access'); @@ -361,12 +363,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); // Test descending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('desc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('desc'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(await menuEntries[0].getVisibleText()).to.be('error'); @@ -374,12 +376,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); // Test back ascending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('asc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('asc'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(await menuEntries[0].getVisibleText()).to.be('access'); @@ -389,38 +391,38 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should filter the datasets list by the typed dataset name', async () => { await retry.try(async () => { - const { nodes } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { nodes } = await PageObjects.observabilityLogsExplorer.getIntegrations(); await nodes[0].click(); }); await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelTitle(menu) + PageObjects.observabilityLogsExplorer.getPanelTitle(menu) ); expect(await panelTitleNode.getVisibleText()).to.be('Apache HTTP Server'); }); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(await menuEntries[0].getVisibleText()).to.be('access'); expect(await menuEntries[1].getVisibleText()).to.be('error'); }); - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('err'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('err'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(menuEntries.length).to.be(1); @@ -430,25 +432,25 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should update the current selection with the clicked dataset', async () => { await retry.try(async () => { - const { nodes } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { nodes } = await PageObjects.observabilityLogsExplorer.getIntegrations(); await nodes[0].click(); }); await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelTitle(menu) + PageObjects.observabilityLogsExplorer.getPanelTitle(menu) ); expect(await panelTitleNode.getVisibleText()).to.be('Apache HTTP Server'); }); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(await menuEntries[0].getVisibleText()).to.be('access'); @@ -457,7 +459,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await retry.try(async () => { const selectorButton = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButton(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButton(); expect(await selectorButton.getVisibleText()).to.be('[Apache HTTP Server] access'); }); @@ -467,25 +469,25 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('when open on the uncategorized tab', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); }); beforeEach(async () => { await browser.refresh(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); - await PageObjects.observabilityLogExplorer + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer .getUncategorizedTab() .then((tab: WebElementWrapper) => tab.click()); }); it('should display a list of available datasets', async () => { await retry.try(async () => { - const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogExplorer + const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() .then((menu: WebElementWrapper) => Promise.all([ - PageObjects.observabilityLogExplorer.getPanelTitle(menu), - PageObjects.observabilityLogExplorer.getPanelEntries(menu), + PageObjects.observabilityLogsExplorer.getPanelTitle(menu), + PageObjects.observabilityLogsExplorer.getPanelEntries(menu), ]) ); @@ -498,22 +500,22 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should sort the datasets list by the clicked sorting option', async () => { await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelTitle(menu) + PageObjects.observabilityLogsExplorer.getPanelTitle(menu) ); expect(await panelTitleNode.getVisibleText()).to.be('Uncategorized'); }); // Test ascending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('asc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('asc'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(await menuEntries[0].getVisibleText()).to.be(expectedUncategorized[0]); @@ -522,12 +524,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); // Test descending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('desc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('desc'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(await menuEntries[0].getVisibleText()).to.be(expectedUncategorized[2]); @@ -536,12 +538,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); // Test back ascending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('asc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('asc'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(await menuEntries[0].getVisibleText()).to.be(expectedUncategorized[0]); @@ -552,20 +554,20 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should filter the datasets list by the typed dataset name', async () => { await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelTitle(menu) + PageObjects.observabilityLogsExplorer.getPanelTitle(menu) ); expect(await panelTitleNode.getVisibleText()).to.be('Uncategorized'); }); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(await menuEntries[0].getVisibleText()).to.be(expectedUncategorized[0]); @@ -573,13 +575,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(await menuEntries[2].getVisibleText()).to.be(expectedUncategorized[2]); }); - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('retail'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('retail'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(menuEntries.length).to.be(1); @@ -589,20 +591,20 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should update the current selection with the clicked dataset', async () => { await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelTitle(menu) + PageObjects.observabilityLogsExplorer.getPanelTitle(menu) ); expect(await panelTitleNode.getVisibleText()).to.be('Uncategorized'); }); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(await menuEntries[0].getVisibleText()).to.be(expectedUncategorized[0]); @@ -611,7 +613,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await retry.try(async () => { const selectorButton = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButton(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButton(); expect(await selectorButton.getVisibleText()).to.be(expectedUncategorized[0]); }); @@ -620,30 +622,30 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('when open on the data views tab', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); }); beforeEach(async () => { await browser.refresh(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); - await PageObjects.observabilityLogExplorer + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer .getDataViewsTab() .then((tab: WebElementWrapper) => tab.click()); }); it('should display a list of available data views', async () => { await retry.try(async () => { - const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogExplorer + const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() .then((menu: WebElementWrapper) => Promise.all([ - PageObjects.observabilityLogExplorer.getPanelTitle(menu), - PageObjects.observabilityLogExplorer.getPanelEntries(menu), + PageObjects.observabilityLogsExplorer.getPanelTitle(menu), + PageObjects.observabilityLogsExplorer.getPanelEntries(menu), ]) ); expect( - await PageObjects.observabilityLogExplorer.getDataViewsContextMenuTitle( + await PageObjects.observabilityLogsExplorer.getDataViewsContextMenuTitle( panelTitleNode ) ).to.be('Data Views'); @@ -655,26 +657,26 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should sort the data views list by the clicked sorting option', async () => { await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelTitle(menu) + PageObjects.observabilityLogsExplorer.getPanelTitle(menu) ); expect( - await PageObjects.observabilityLogExplorer.getDataViewsContextMenuTitle( + await PageObjects.observabilityLogsExplorer.getDataViewsContextMenuTitle( panelTitleNode ) ).to.be('Data Views'); }); // Test descending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('desc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('desc'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(await menuEntries[0].getVisibleText()).to.be(sortedExpectedDataViews[2]); @@ -683,12 +685,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); // Test back ascending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('asc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('asc'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(await menuEntries[0].getVisibleText()).to.be(sortedExpectedDataViews[0]); @@ -699,24 +701,24 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should filter the datasets list by the typed data view name', async () => { await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelTitle(menu) + PageObjects.observabilityLogsExplorer.getPanelTitle(menu) ); expect( - await PageObjects.observabilityLogExplorer.getDataViewsContextMenuTitle( + await PageObjects.observabilityLogsExplorer.getDataViewsContextMenuTitle( panelTitleNode ) ).to.be('Data Views'); }); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(await menuEntries[0].getVisibleText()).to.be(expectedDataViews[0]); @@ -724,13 +726,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(await menuEntries[2].getVisibleText()).to.be(expectedDataViews[2]); }); - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('logs'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('logs'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(menuEntries.length).to.be(2); @@ -741,24 +743,24 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should navigate to Discover with the clicked data view preselected', async () => { await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelTitle(menu) + PageObjects.observabilityLogsExplorer.getPanelTitle(menu) ); expect( - await PageObjects.observabilityLogExplorer.getDataViewsContextMenuTitle( + await PageObjects.observabilityLogsExplorer.getDataViewsContextMenuTitle( panelTitleNode ) ).to.be('Data Views'); }); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(await menuEntries[2].getVisibleText()).to.be(expectedDataViews[2]); @@ -775,27 +777,27 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('when open/close the selector', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); }); beforeEach(async () => { await browser.refresh(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); }); it('should restore the latest navigation panel', async () => { await retry.try(async () => { - const { nodes } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { nodes } = await PageObjects.observabilityLogsExplorer.getIntegrations(); await nodes[0].click(); }); await retry.try(async () => { - const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogExplorer + const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu: WebElementWrapper) => Promise.all([ - PageObjects.observabilityLogExplorer.getPanelTitle(menu), - PageObjects.observabilityLogExplorer.getPanelEntries(menu), + PageObjects.observabilityLogsExplorer.getPanelTitle(menu), + PageObjects.observabilityLogsExplorer.getPanelEntries(menu), ]) ); @@ -804,16 +806,16 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(await menuEntries[1].getVisibleText()).to.be('error'); }); - await PageObjects.observabilityLogExplorer.closeDatasetSelector(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer.closeDatasetSelector(); + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); await retry.try(async () => { - const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogExplorer + const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu: WebElementWrapper) => Promise.all([ - PageObjects.observabilityLogExplorer.getPanelTitle(menu), - PageObjects.observabilityLogExplorer.getPanelEntries(menu), + PageObjects.observabilityLogsExplorer.getPanelTitle(menu), + PageObjects.observabilityLogsExplorer.getPanelEntries(menu), ]) ); @@ -824,18 +826,18 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('should restore the latest search results', async () => { - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('system'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('system'); await retry.try(async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql([initialPackageMap.system]); }); - await PageObjects.observabilityLogExplorer.closeDatasetSelector(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer.closeDatasetSelector(); + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); await retry.try(async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql([initialPackageMap.system]); }); }); @@ -843,29 +845,29 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('when switching between tabs or integration panels', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); }); it('should remember the latest search and restore its results', async () => { - await PageObjects.observabilityLogExplorer.openDatasetSelector(); - await PageObjects.observabilityLogExplorer.clearSearchField(); + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer.clearSearchField(); - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('apache'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('apache'); await retry.try(async () => { const { nodes, integrations } = - await PageObjects.observabilityLogExplorer.getIntegrations(); + await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql([initialPackageMap.apache]); nodes[0].click(); }); await retry.try(async () => { - const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogExplorer + const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu: WebElementWrapper) => Promise.all([ - PageObjects.observabilityLogExplorer.getPanelTitle(menu), - PageObjects.observabilityLogExplorer.getPanelEntries(menu), + PageObjects.observabilityLogsExplorer.getPanelTitle(menu), + PageObjects.observabilityLogsExplorer.getPanelEntries(menu), ]) ); @@ -874,13 +876,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(await menuEntries[1].getVisibleText()).to.be('error'); }); - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('err'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('err'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); expect(menuEntries.length).to.be(1); @@ -888,32 +890,32 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); // Navigate back to integrations - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelTitle(menu) + PageObjects.observabilityLogsExplorer.getPanelTitle(menu) ); panelTitleNode.click(); await retry.try(async () => { const { nodes, integrations } = - await PageObjects.observabilityLogExplorer.getIntegrations(); + await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql([initialPackageMap.apache]); - const searchValue = await PageObjects.observabilityLogExplorer.getSearchFieldValue(); + const searchValue = await PageObjects.observabilityLogsExplorer.getSearchFieldValue(); expect(searchValue).to.eql('apache'); nodes[0].click(); }); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu: WebElementWrapper) => - PageObjects.observabilityLogExplorer.getPanelEntries(menu) + PageObjects.observabilityLogsExplorer.getPanelEntries(menu) ); - const searchValue = await PageObjects.observabilityLogExplorer.getSearchFieldValue(); + const searchValue = await PageObjects.observabilityLogsExplorer.getSearchFieldValue(); expect(searchValue).to.eql('err'); expect(menuEntries.length).to.be(1); diff --git a/x-pack/test/functional/apps/observability_log_explorer/filter_controls.ts b/x-pack/test/functional/apps/observability_log_explorer/filter_controls.ts index 36087a23e8c4c..bb75b12004e77 100644 --- a/x-pack/test/functional/apps/observability_log_explorer/filter_controls.ts +++ b/x-pack/test/functional/apps/observability_log_explorer/filter_controls.ts @@ -8,7 +8,7 @@ import { FtrProviderContext } from './config'; export default function ({ getService, getPageObjects }: FtrProviderContext) { const kibanaServer = getService('kibanaServer'); - const PageObjects = getPageObjects(['observabilityLogExplorer']); + const PageObjects = getPageObjects(['observabilityLogsExplorer']); const testSubjects = getService('testSubjects'); describe('Filter controls customization', () => { @@ -21,7 +21,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('renders a filter controls section as part of the unified search bar', async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); await testSubjects.existOrFail('datasetFiltersCustomization', { allowHidden: true }); }); }); diff --git a/x-pack/test/functional/apps/observability_log_explorer/flyout.ts b/x-pack/test/functional/apps/observability_log_explorer/flyout.ts index 11c161b5f4f8d..8e478755794a6 100644 --- a/x-pack/test/functional/apps/observability_log_explorer/flyout.ts +++ b/x-pack/test/functional/apps/observability_log_explorer/flyout.ts @@ -34,21 +34,21 @@ const docs = [ export default function ({ getService, getPageObjects }: FtrProviderContext) { const dataGrid = getService('dataGrid'); const testSubjects = getService('testSubjects'); - const PageObjects = getPageObjects(['observabilityLogExplorer']); + const PageObjects = getPageObjects(['observabilityLogsExplorer']); describe('Flyout content customization', () => { let cleanupDataStreamSetup: () => Promise; before('initialize tests', async () => { - cleanupDataStreamSetup = await PageObjects.observabilityLogExplorer.setupDataStream( + cleanupDataStreamSetup = await PageObjects.observabilityLogsExplorer.setupDataStream( DATASET_NAME, NAMESPACE ); - await PageObjects.observabilityLogExplorer.ingestLogEntries(DATA_STREAM_NAME, docs); + await PageObjects.observabilityLogsExplorer.ingestLogEntries(DATA_STREAM_NAME, docs); }); beforeEach(async () => { - await PageObjects.observabilityLogExplorer.navigateTo({ + await PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { time: { from: new Date(NOW - 60_000).toISOString(), @@ -67,30 +67,30 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should mount the flyout customization content', async () => { await dataGrid.clickRowToggle(); - await testSubjects.existOrFail('logExplorerFlyoutDetail'); + await testSubjects.existOrFail('logsExplorerFlyoutDetail'); }); it('should display a timestamp badge', async () => { await dataGrid.clickRowToggle(); - await testSubjects.existOrFail('logExplorerFlyoutLogTimestamp'); + await testSubjects.existOrFail('logsExplorerFlyoutLogTimestamp'); }); it('should display a log level badge when available', async () => { await dataGrid.clickRowToggle(); - await testSubjects.existOrFail('logExplorerFlyoutLogLevel'); + await testSubjects.existOrFail('logsExplorerFlyoutLogLevel'); await dataGrid.closeFlyout(); await dataGrid.clickRowToggle({ rowIndex: 1 }); - await testSubjects.missingOrFail('logExplorerFlyoutLogLevel'); + await testSubjects.missingOrFail('logsExplorerFlyoutLogLevel'); }); it('should display a message code block when available', async () => { await dataGrid.clickRowToggle(); - await testSubjects.existOrFail('logExplorerFlyoutLogMessage'); + await testSubjects.existOrFail('logsExplorerFlyoutLogMessage'); await dataGrid.closeFlyout(); await dataGrid.clickRowToggle({ rowIndex: 1 }); - await testSubjects.missingOrFail('logExplorerFlyoutLogMessage'); + await testSubjects.missingOrFail('logsExplorerFlyoutLogMessage'); }); }); } diff --git a/x-pack/test/functional/apps/observability_log_explorer/flyout_highlights.ts b/x-pack/test/functional/apps/observability_log_explorer/flyout_highlights.ts index f0c457167c190..678c76bde9f2f 100644 --- a/x-pack/test/functional/apps/observability_log_explorer/flyout_highlights.ts +++ b/x-pack/test/functional/apps/observability_log_explorer/flyout_highlights.ts @@ -35,7 +35,7 @@ const sharedDoc = { export default function ({ getService, getPageObjects }: FtrProviderContext) { const dataGrid = getService('dataGrid'); const testSubjects = getService('testSubjects'); - const PageObjects = getPageObjects(['observabilityLogExplorer']); + const PageObjects = getPageObjects(['observabilityLogsExplorer']); describe('Flyout highlight customization', () => { let cleanupDataStreamSetup: () => Promise; @@ -61,11 +61,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const docs = [sharedDoc, docWithoutServiceName, docWithoutServiceInfraContainer]; before('setup DataStream', async () => { - cleanupDataStreamSetup = await PageObjects.observabilityLogExplorer.setupDataStream( + cleanupDataStreamSetup = await PageObjects.observabilityLogsExplorer.setupDataStream( DATASET_NAME, NAMESPACE ); - await PageObjects.observabilityLogExplorer.ingestLogEntries(DATA_STREAM_NAME, docs); + await PageObjects.observabilityLogsExplorer.ingestLogEntries(DATA_STREAM_NAME, docs); }); after('clean up DataStream', async () => { @@ -75,7 +75,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); beforeEach(async () => { - await PageObjects.observabilityLogExplorer.navigateTo({ + await PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { time: { from: new Date(NOW - 60_000).toISOString(), @@ -88,29 +88,29 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should load the service container with all fields', async () => { await dataGrid.clickRowToggle(); - await testSubjects.existOrFail('logExplorerFlyoutHighlightSectionServiceInfra'); - await testSubjects.existOrFail('logExplorerFlyoutService'); - await testSubjects.existOrFail('logExplorerFlyoutTrace'); - await testSubjects.existOrFail('logExplorerFlyoutHostName'); - await testSubjects.existOrFail('logExplorerFlyoutClusterName'); - await testSubjects.existOrFail('logExplorerFlyoutResourceId'); + await testSubjects.existOrFail('logsExplorerFlyoutHighlightSectionServiceInfra'); + await testSubjects.existOrFail('logsExplorerFlyoutService'); + await testSubjects.existOrFail('logsExplorerFlyoutTrace'); + await testSubjects.existOrFail('logsExplorerFlyoutHostName'); + await testSubjects.existOrFail('logsExplorerFlyoutClusterName'); + await testSubjects.existOrFail('logsExplorerFlyoutResourceId'); await dataGrid.closeFlyout(); }); it('should load the service container even when 1 field is missing', async () => { await dataGrid.clickRowToggle({ rowIndex: 1 }); - await testSubjects.existOrFail('logExplorerFlyoutHighlightSectionServiceInfra'); - await testSubjects.missingOrFail('logExplorerFlyoutService'); - await testSubjects.existOrFail('logExplorerFlyoutTrace'); - await testSubjects.existOrFail('logExplorerFlyoutHostName'); - await testSubjects.existOrFail('logExplorerFlyoutClusterName'); - await testSubjects.existOrFail('logExplorerFlyoutResourceId'); + await testSubjects.existOrFail('logsExplorerFlyoutHighlightSectionServiceInfra'); + await testSubjects.missingOrFail('logsExplorerFlyoutService'); + await testSubjects.existOrFail('logsExplorerFlyoutTrace'); + await testSubjects.existOrFail('logsExplorerFlyoutHostName'); + await testSubjects.existOrFail('logsExplorerFlyoutClusterName'); + await testSubjects.existOrFail('logsExplorerFlyoutResourceId'); await dataGrid.closeFlyout(); }); it('should not load the service container if all fields are missing', async () => { await dataGrid.clickRowToggle({ rowIndex: 2 }); - await testSubjects.missingOrFail('logExplorerFlyoutHighlightSectionServiceInfra'); + await testSubjects.missingOrFail('logsExplorerFlyoutHighlightSectionServiceInfra'); await dataGrid.closeFlyout(); }); }); @@ -129,11 +129,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const docs = [sharedDoc, docWithoutCloudProviderAndInstanceId, docWithoutCloudContainer]; before('setup DataStream', async () => { - cleanupDataStreamSetup = await PageObjects.observabilityLogExplorer.setupDataStream( + cleanupDataStreamSetup = await PageObjects.observabilityLogsExplorer.setupDataStream( DATASET_NAME, NAMESPACE ); - await PageObjects.observabilityLogExplorer.ingestLogEntries(DATA_STREAM_NAME, docs); + await PageObjects.observabilityLogsExplorer.ingestLogEntries(DATA_STREAM_NAME, docs); }); after('clean up DataStream', async () => { @@ -143,7 +143,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); beforeEach(async () => { - await PageObjects.observabilityLogExplorer.navigateTo({ + await PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { time: { from: new Date(NOW - 60_000).toISOString(), @@ -156,36 +156,36 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should load the cloud container with all fields', async () => { await dataGrid.clickRowToggle(); - await testSubjects.existOrFail('logExplorerFlyoutHighlightSectionCloud'); - await testSubjects.existOrFail('logExplorerFlyoutCloudProvider'); - await testSubjects.existOrFail('logExplorerFlyoutCloudRegion'); - await testSubjects.existOrFail('logExplorerFlyoutCloudAz'); - await testSubjects.existOrFail('logExplorerFlyoutCloudProjectId'); - await testSubjects.existOrFail('logExplorerFlyoutCloudInstanceId'); + await testSubjects.existOrFail('logsExplorerFlyoutHighlightSectionCloud'); + await testSubjects.existOrFail('logsExplorerFlyoutCloudProvider'); + await testSubjects.existOrFail('logsExplorerFlyoutCloudRegion'); + await testSubjects.existOrFail('logsExplorerFlyoutCloudAz'); + await testSubjects.existOrFail('logsExplorerFlyoutCloudProjectId'); + await testSubjects.existOrFail('logsExplorerFlyoutCloudInstanceId'); await dataGrid.closeFlyout(); }); it('should load the cloud container even when some fields are missing', async () => { await dataGrid.clickRowToggle({ rowIndex: 1 }); - await testSubjects.existOrFail('logExplorerFlyoutHighlightSectionCloud'); + await testSubjects.existOrFail('logsExplorerFlyoutHighlightSectionCloud'); - await testSubjects.missingOrFail('logExplorerFlyoutCloudProvider'); - await testSubjects.missingOrFail('logExplorerFlyoutCloudInstanceId'); + await testSubjects.missingOrFail('logsExplorerFlyoutCloudProvider'); + await testSubjects.missingOrFail('logsExplorerFlyoutCloudInstanceId'); - await testSubjects.existOrFail('logExplorerFlyoutCloudRegion'); - await testSubjects.existOrFail('logExplorerFlyoutCloudAz'); - await testSubjects.existOrFail('logExplorerFlyoutCloudProjectId'); + await testSubjects.existOrFail('logsExplorerFlyoutCloudRegion'); + await testSubjects.existOrFail('logsExplorerFlyoutCloudAz'); + await testSubjects.existOrFail('logsExplorerFlyoutCloudProjectId'); await dataGrid.closeFlyout(); }); it('should not load the cloud container if all fields are missing', async () => { await dataGrid.clickRowToggle({ rowIndex: 2 }); - await testSubjects.missingOrFail('logExplorerFlyoutHighlightSectionCloud'); - await testSubjects.missingOrFail('logExplorerFlyoutCloudProvider'); - await testSubjects.missingOrFail('logExplorerFlyoutCloudRegion'); - await testSubjects.missingOrFail('logExplorerFlyoutCloudAz'); - await testSubjects.missingOrFail('logExplorerFlyoutCloudProjectId'); - await testSubjects.missingOrFail('logExplorerFlyoutCloudInstanceId'); + await testSubjects.missingOrFail('logsExplorerFlyoutHighlightSectionCloud'); + await testSubjects.missingOrFail('logsExplorerFlyoutCloudProvider'); + await testSubjects.missingOrFail('logsExplorerFlyoutCloudRegion'); + await testSubjects.missingOrFail('logsExplorerFlyoutCloudAz'); + await testSubjects.missingOrFail('logsExplorerFlyoutCloudProjectId'); + await testSubjects.missingOrFail('logsExplorerFlyoutCloudInstanceId'); await dataGrid.closeFlyout(); }); }); @@ -199,11 +199,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const docs = [sharedDoc, docWithoutLogPathAndAgentName]; before('setup DataStream', async () => { - cleanupDataStreamSetup = await PageObjects.observabilityLogExplorer.setupDataStream( + cleanupDataStreamSetup = await PageObjects.observabilityLogsExplorer.setupDataStream( DATASET_NAME, NAMESPACE ); - await PageObjects.observabilityLogExplorer.ingestLogEntries(DATA_STREAM_NAME, docs); + await PageObjects.observabilityLogsExplorer.ingestLogEntries(DATA_STREAM_NAME, docs); }); after('clean up DataStream', async () => { @@ -213,7 +213,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); beforeEach(async () => { - await PageObjects.observabilityLogExplorer.navigateTo({ + await PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { time: { from: new Date(NOW - 60_000).toISOString(), @@ -226,23 +226,23 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should load the other container with all fields', async () => { await dataGrid.clickRowToggle(); - await testSubjects.existOrFail('logExplorerFlyoutHighlightSectionOther'); - await testSubjects.existOrFail('logExplorerFlyoutLogPathFile'); - await testSubjects.existOrFail('logExplorerFlyoutNamespace'); - await testSubjects.existOrFail('logExplorerFlyoutDataset'); - await testSubjects.existOrFail('logExplorerFlyoutLogShipper'); + await testSubjects.existOrFail('logsExplorerFlyoutHighlightSectionOther'); + await testSubjects.existOrFail('logsExplorerFlyoutLogPathFile'); + await testSubjects.existOrFail('logsExplorerFlyoutNamespace'); + await testSubjects.existOrFail('logsExplorerFlyoutDataset'); + await testSubjects.existOrFail('logsExplorerFlyoutLogShipper'); await dataGrid.closeFlyout(); }); it('should load the other container even when some fields are missing', async () => { await dataGrid.clickRowToggle({ rowIndex: 1 }); - await testSubjects.existOrFail('logExplorerFlyoutHighlightSectionOther'); + await testSubjects.existOrFail('logsExplorerFlyoutHighlightSectionOther'); - await testSubjects.missingOrFail('logExplorerFlyoutLogPathFile'); - await testSubjects.missingOrFail('logExplorerFlyoutLogShipper'); + await testSubjects.missingOrFail('logsExplorerFlyoutLogPathFile'); + await testSubjects.missingOrFail('logsExplorerFlyoutLogShipper'); - await testSubjects.existOrFail('logExplorerFlyoutNamespace'); - await testSubjects.existOrFail('logExplorerFlyoutDataset'); + await testSubjects.existOrFail('logsExplorerFlyoutNamespace'); + await testSubjects.existOrFail('logsExplorerFlyoutDataset'); await dataGrid.closeFlyout(); }); }); diff --git a/x-pack/test/functional/apps/observability_log_explorer/header_menu.ts b/x-pack/test/functional/apps/observability_log_explorer/header_menu.ts index f5b7deb645da3..b24f33688e555 100644 --- a/x-pack/test/functional/apps/observability_log_explorer/header_menu.ts +++ b/x-pack/test/functional/apps/observability_log_explorer/header_menu.ts @@ -13,7 +13,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const kibanaServer = getService('kibanaServer'); const retry = getService('retry'); const testSubjects = getService('testSubjects'); - const PageObjects = getPageObjects(['discover', 'observabilityLogExplorer', 'timePicker']); + const PageObjects = getPageObjects(['discover', 'observabilityLogsExplorer', 'timePicker']); describe('Header menu', () => { before(async () => { @@ -21,7 +21,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await esArchiver.load( 'x-pack/test/functional/es_archives/observability_log_explorer/data_streams' ); - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); }); after(async () => { @@ -32,17 +32,17 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('should inject the app header menu on the top navbar', async () => { - const headerMenu = await PageObjects.observabilityLogExplorer.getHeaderMenu(); + const headerMenu = await PageObjects.observabilityLogsExplorer.getHeaderMenu(); expect(await headerMenu.isDisplayed()).to.be(true); }); describe('Discover fallback link', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); }); it('should render a button link ', async () => { - const discoverLink = await PageObjects.observabilityLogExplorer.getDiscoverFallbackLink(); + const discoverLink = await PageObjects.observabilityLogsExplorer.getDiscoverFallbackLink(); expect(await discoverLink.isDisplayed()).to.be(true); }); @@ -55,9 +55,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const timeConfig = await PageObjects.timePicker.getTimeConfig(); // Set query bar value - await PageObjects.observabilityLogExplorer.submitQuery('*favicon*'); + await PageObjects.observabilityLogsExplorer.submitQuery('*favicon*'); - const discoverLink = await PageObjects.observabilityLogExplorer.getDiscoverFallbackLink(); + const discoverLink = await PageObjects.observabilityLogsExplorer.getDiscoverFallbackLink(); discoverLink.click(); await PageObjects.discover.waitForDocTableLoadingComplete(); @@ -79,23 +79,25 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); await retry.try(async () => { - expect(await PageObjects.observabilityLogExplorer.getQueryBarValue()).to.eql('*favicon*'); + expect(await PageObjects.observabilityLogsExplorer.getQueryBarValue()).to.eql( + '*favicon*' + ); }); }); }); describe('Add data link', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); }); it('should render a button link ', async () => { - const onboardingLink = await PageObjects.observabilityLogExplorer.getOnboardingLink(); + const onboardingLink = await PageObjects.observabilityLogsExplorer.getOnboardingLink(); expect(await onboardingLink.isDisplayed()).to.be(true); }); it('should navigate to the observability onboarding overview page', async () => { - const onboardingLink = await PageObjects.observabilityLogExplorer.getOnboardingLink(); + const onboardingLink = await PageObjects.observabilityLogsExplorer.getOnboardingLink(); onboardingLink.click(); await retry.try(async () => { diff --git a/x-pack/test/functional/apps/observability_log_explorer/index.ts b/x-pack/test/functional/apps/observability_log_explorer/index.ts index c1114211b41a9..e8114a8d14bfd 100644 --- a/x-pack/test/functional/apps/observability_log_explorer/index.ts +++ b/x-pack/test/functional/apps/observability_log_explorer/index.ts @@ -8,7 +8,7 @@ import { FtrProviderContext } from './config'; export default function ({ loadTestFile }: FtrProviderContext) { - describe('Observability Log Explorer', function () { + describe('Observability Logs Explorer', function () { loadTestFile(require.resolve('./app')); loadTestFile(require.resolve('./columns_selection')); loadTestFile(require.resolve('./dataset_selection_state')); diff --git a/x-pack/test/functional/config.base.js b/x-pack/test/functional/config.base.js index 95849312e17da..c88c4b81d7675 100644 --- a/x-pack/test/functional/config.base.js +++ b/x-pack/test/functional/config.base.js @@ -170,7 +170,7 @@ export default async function ({ readConfigFile }) { observability: { pathname: '/app/observability', }, - observabilityLogExplorer: { + observabilityLogsExplorer: { pathname: '/app/observability-log-explorer', }, connectors: { diff --git a/x-pack/test/functional/page_objects/index.ts b/x-pack/test/functional/page_objects/index.ts index b4ea0f741e117..30c8d9cd13e9d 100644 --- a/x-pack/test/functional/page_objects/index.ts +++ b/x-pack/test/functional/page_objects/index.ts @@ -33,7 +33,7 @@ import { LogstashPageObject } from './logstash_page'; import { MaintenanceWindowsPageProvider } from './maintenance_windows_page'; import { MonitoringPageObject } from './monitoring_page'; import { NavigationalSearchPageObject } from './navigational_search'; -import { ObservabilityLogExplorerPageObject } from './observability_log_explorer'; +import { ObservabilityLogsExplorerPageObject } from './observability_log_explorer'; import { ObservabilityPageProvider } from './observability_page'; import { RemoteClustersPageProvider } from './remote_clusters_page'; import { ReportingPageObject } from './reporting_page'; @@ -82,7 +82,7 @@ export const pageObjects = { maps: GisPageObject, monitoring: MonitoringPageObject, navigationalSearch: NavigationalSearchPageObject, - observabilityLogExplorer: ObservabilityLogExplorerPageObject, + observabilityLogsExplorer: ObservabilityLogsExplorerPageObject, observability: ObservabilityPageProvider, remoteClusters: RemoteClustersPageProvider, reporting: ReportingPageObject, diff --git a/x-pack/test/functional/page_objects/observability_log_explorer.ts b/x-pack/test/functional/page_objects/observability_log_explorer.ts index d6746ccd9e015..37db7822d1036 100644 --- a/x-pack/test/functional/page_objects/observability_log_explorer.ts +++ b/x-pack/test/functional/page_objects/observability_log_explorer.ts @@ -114,7 +114,7 @@ const defaultPageState: urlSchemaV1.UrlSchema = { }, }; -export function ObservabilityLogExplorerPageObject({ +export function ObservabilityLogsExplorerPageObject({ getPageObjects, getService, }: FtrProviderContext) { @@ -224,7 +224,7 @@ export function ObservabilityLogExplorerPageObject({ }); return await PageObjects.common.navigateToUrlWithBrowserHistory( - 'observabilityLogExplorer', + 'observabilityLogsExplorer', '/', queryStringParams, { @@ -249,7 +249,7 @@ export function ObservabilityLogExplorerPageObject({ log.info('queryStringParams'); return await PageObjects.common.navigateToUrlWithBrowserHistory( - 'observabilityLogExplorer', + 'observabilityLogsExplorer', '/', queryStringParams, { @@ -330,7 +330,7 @@ export function ObservabilityLogExplorerPageObject({ async getFlyoutDetail(rowIndex: number = 0) { await dataGrid.clickRowToggle({ rowIndex }); - return testSubjects.find('logExplorerFlyoutDetail'); + return testSubjects.find('logsExplorerFlyoutDetail'); }, async getIntegrations() { @@ -416,15 +416,15 @@ export function ObservabilityLogExplorerPageObject({ }, getHeaderMenu() { - return testSubjects.find('logExplorerHeaderMenu'); + return testSubjects.find('logsExplorerHeaderMenu'); }, getDiscoverFallbackLink() { - return testSubjects.find('logExplorerDiscoverFallbackLink'); + return testSubjects.find('logsExplorerDiscoverFallbackLink'); }, getOnboardingLink() { - return testSubjects.find('logExplorerOnboardingLink'); + return testSubjects.find('logsExplorerOnboardingLink'); }, // Query Bar diff --git a/x-pack/test_serverless/functional/config.base.ts b/x-pack/test_serverless/functional/config.base.ts index 51227434fd377..9d7ffed8488c7 100644 --- a/x-pack/test_serverless/functional/config.base.ts +++ b/x-pack/test_serverless/functional/config.base.ts @@ -60,7 +60,7 @@ export function createTestConfig(options: CreateTestConfigOptions) { observability: { pathname: '/app/observability', }, - observabilityLogExplorer: { + observabilityLogsExplorer: { pathname: '/app/observability-log-explorer', }, management: { diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/app.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/app.ts index 4a1cf5024ff4d..6f98ca40aa0fc 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/app.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/app.ts @@ -10,7 +10,7 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getPageObjects, getService }: FtrProviderContext) { const PageObjects = getPageObjects([ - 'observabilityLogExplorer', + 'observabilityLogsExplorer', 'svlCommonNavigation', 'svlCommonPage', ]); @@ -28,10 +28,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { }); it('is shown in the global search', async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); await PageObjects.svlCommonNavigation.search.showSearch(); - await PageObjects.svlCommonNavigation.search.searchFor('log explorer'); + await PageObjects.svlCommonNavigation.search.searchFor('logs explorer'); const results = await PageObjects.svlCommonNavigation.search.getDisplayedResults(); expect(results[0].label).to.eql('Logs Explorer'); @@ -44,7 +44,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { const to = '2023-08-03T10:24:14.091Z'; const COUNT = 5; await synthtrace.index(generateLogsData({ from, to, count: COUNT })); - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); const docCount = await dataGrid.getDocCount(); expect(docCount).to.be(COUNT); diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/columns_selection.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/columns_selection.ts index 97b33e956a7e0..1f28612efb6db 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/columns_selection.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/columns_selection.ts @@ -13,7 +13,7 @@ const defaultLogColumns = ['@timestamp', 'resource', 'content']; export default function ({ getService, getPageObjects }: FtrProviderContext) { const retry = getService('retry'); - const PageObjects = getPageObjects(['discover', 'observabilityLogExplorer', 'svlCommonPage']); + const PageObjects = getPageObjects(['discover', 'observabilityLogsExplorer', 'svlCommonPage']); const synthtrace = getService('svlLogsSynthtraceClient'); const dataGrid = getService('dataGrid'); const testSubjects = getService('testSubjects'); @@ -22,7 +22,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const TEST_TIMEOUT = 10 * 1000; // 10 secs const navigateToLogExplorer = () => - PageObjects.observabilityLogExplorer.navigateTo({ + PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { time: { from, @@ -32,7 +32,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }, }); - describe('When the log explorer loads', () => { + describe('When the logs explorer loads', () => { before(async () => { await synthtrace.index(generateLogsData({ to })); await PageObjects.svlCommonPage.login(); @@ -52,7 +52,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('should restore the table columns from the URL state if exists', async () => { - await PageObjects.observabilityLogExplorer.navigateTo({ + await PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { time: { from, @@ -125,7 +125,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(cellValue.includes('event.original')).to.be(false); const cellAttribute = await cellElement.findByTestSubject( - 'logExplorerCellDescriptionList' + 'logsExplorerCellDescriptionList' ); expect(cellAttribute).not.to.be.empty(); }); diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/dataset_selection_state.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/dataset_selection_state.ts index b6088ebb6a3d7..53b25cf5011ff 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/dataset_selection_state.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/dataset_selection_state.ts @@ -27,7 +27,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const retry = getService('retry'); const PageObjects = getPageObjects([ 'common', - 'observabilityLogExplorer', + 'observabilityLogsExplorer', 'svlCommonPage', 'header', ]); @@ -43,10 +43,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('when no dataset selection is given', () => { it('should initialize the "All logs" selection', async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); await PageObjects.header.waitUntilLoadingHasFinished(); const datasetSelectionTitle = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButtonText(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButtonText(); expect(datasetSelectionTitle).to.be('All logs'); }); @@ -54,7 +54,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('when a dataset selection is given', () => { it('should decode and restore the selection from a valid encoded index', async () => { - await PageObjects.observabilityLogExplorer.navigateTo({ + await PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { datasetSelection: azureActivityDatasetSelection, }, @@ -62,13 +62,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.header.waitUntilLoadingHasFinished(); const datasetSelectionTitle = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButtonText(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButtonText(); expect(datasetSelectionTitle).to.be('[Azure Logs] activitylogs'); }); it('should fallback to the "All logs" selection and notify the user of an invalid encoded index', async () => { - await PageObjects.observabilityLogExplorer.navigateToWithUncheckedState({ + await PageObjects.observabilityLogsExplorer.navigateToWithUncheckedState({ pageState: { v: 1, datasetSelection: { @@ -79,29 +79,29 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.header.waitUntilLoadingHasFinished(); const datasetSelectionTitle = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButtonText(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButtonText(); - await PageObjects.observabilityLogExplorer.assertRestoreFailureToastExist(); + await PageObjects.observabilityLogsExplorer.assertRestoreFailureToastExist(); expect(datasetSelectionTitle).to.be('All logs'); }); }); describe('when navigating back and forth on the page history', () => { it('should decode and restore the selection for the current index', async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); await PageObjects.header.waitUntilLoadingHasFinished(); const allDatasetSelectionTitle = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButtonText(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButtonText(); expect(allDatasetSelectionTitle).to.be('All logs'); - await PageObjects.observabilityLogExplorer.navigateTo({ + await PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { datasetSelection: azureActivityDatasetSelection, }, }); await PageObjects.header.waitUntilLoadingHasFinished(); const azureDatasetSelectionTitle = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButtonText(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButtonText(); expect(azureDatasetSelectionTitle).to.be('[Azure Logs] activitylogs'); // Go back to previous page selection @@ -109,7 +109,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await browser.goBack(); await PageObjects.header.waitUntilLoadingHasFinished(); const backNavigationDatasetSelectionTitle = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButtonText(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButtonText(); expect(backNavigationDatasetSelectionTitle).to.be('All logs'); }); @@ -118,7 +118,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await browser.goForward(); await PageObjects.header.waitUntilLoadingHasFinished(); const forwardNavigationDatasetSelectionTitle = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButtonText(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButtonText(); expect(forwardNavigationDatasetSelectionTitle).to.be('[Azure Logs] activitylogs'); }); }); diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/dataset_selector.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/dataset_selector.ts index de0f3b24d9a35..e0d1452088ff3 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/dataset_selector.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/dataset_selector.ts @@ -27,7 +27,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const PageObjects = getPageObjects([ 'common', 'discover', - 'observabilityLogExplorer', + 'observabilityLogsExplorer', 'svlCommonPage', ]); @@ -39,7 +39,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { this.tags(['failsOnMKI']); before(async () => { await PageObjects.svlCommonPage.login(); - await PageObjects.observabilityLogExplorer.removeInstalledPackages(); + await PageObjects.observabilityLogsExplorer.removeInstalledPackages(); }); after(async () => { @@ -48,18 +48,18 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('as consistent behavior', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); }); beforeEach(async () => { await browser.refresh(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); }); it('should always display the Integrations, Uncategorized and Data Views top level tabs', async () => { - const integrationsTab = await PageObjects.observabilityLogExplorer.getIntegrationsTab(); - const uncategorizedTab = await PageObjects.observabilityLogExplorer.getUncategorizedTab(); - const dataViewsTab = await PageObjects.observabilityLogExplorer.getDataViewsTab(); + const integrationsTab = await PageObjects.observabilityLogsExplorer.getIntegrationsTab(); + const uncategorizedTab = await PageObjects.observabilityLogsExplorer.getUncategorizedTab(); + const dataViewsTab = await PageObjects.observabilityLogsExplorer.getDataViewsTab(); expect(await integrationsTab.isDisplayed()).to.be(true); expect(await integrationsTab.getVisibleText()).to.be('Integrations'); @@ -71,7 +71,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should always display the "Show all logs" action', async () => { const allLogDatasetButton = - await PageObjects.observabilityLogExplorer.getAllLogDatasetsButton(); + await PageObjects.observabilityLogsExplorer.getAllLogDatasetsButton(); const allLogDatasetTitle = await allLogDatasetButton.getVisibleText(); @@ -83,17 +83,17 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { // Skip the test in case network condition utils are not available try { await retry.try(async () => { - await PageObjects.observabilityLogExplorer.assertListStatusEmptyPromptExistsWithTitle( + await PageObjects.observabilityLogsExplorer.assertListStatusEmptyPromptExistsWithTitle( noIntegrationsTitle ); }); await PageObjects.common.sleep(5000); await browser.setNetworkConditions('OFFLINE'); - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('a'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('a'); await retry.try(async () => { - await PageObjects.observabilityLogExplorer.assertListStatusErrorPromptExistsWithTitle( + await PageObjects.observabilityLogsExplorer.assertListStatusErrorPromptExistsWithTitle( noIntegrationsTitle ); }); @@ -105,12 +105,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('should display an empty prompt for no integrations', async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(menuEntries.length).to.be(0); - await PageObjects.observabilityLogExplorer.assertListStatusEmptyPromptExistsWithTitle( + await PageObjects.observabilityLogsExplorer.assertListStatusEmptyPromptExistsWithTitle( noIntegrationsTitle ); }); @@ -122,10 +122,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { try { await browser.setNetworkConditions('SLOW_3G'); // Almost stuck network conditions const uncategorizedTab = - await PageObjects.observabilityLogExplorer.getUncategorizedTab(); + await PageObjects.observabilityLogsExplorer.getUncategorizedTab(); await uncategorizedTab.click(); - await PageObjects.observabilityLogExplorer.assertLoadingSkeletonExists(); + await PageObjects.observabilityLogsExplorer.assertLoadingSkeletonExists(); await browser.restoreNetworkConditions(); } catch (error) { @@ -134,23 +134,24 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('should display an error prompt if could not retrieve the datasets', async function () { - const uncategorizedTab = await PageObjects.observabilityLogExplorer.getUncategorizedTab(); + const uncategorizedTab = + await PageObjects.observabilityLogsExplorer.getUncategorizedTab(); await uncategorizedTab.click(); // Skip the test in case network condition utils are not available try { await retry.try(async () => { - await PageObjects.observabilityLogExplorer.assertListStatusEmptyPromptExistsWithTitle( + await PageObjects.observabilityLogsExplorer.assertListStatusEmptyPromptExistsWithTitle( noUncategorizedTitle ); }); await PageObjects.common.sleep(5000); await browser.setNetworkConditions('OFFLINE'); - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('a'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('a'); await retry.try(async () => { - await PageObjects.observabilityLogExplorer.assertListStatusErrorPromptExistsWithTitle( + await PageObjects.observabilityLogsExplorer.assertListStatusErrorPromptExistsWithTitle( noUncategorizedTitle ); }); @@ -162,16 +163,17 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('should display an empty prompt for no uncategorized data streams', async () => { - const uncategorizedTab = await PageObjects.observabilityLogExplorer.getUncategorizedTab(); + const uncategorizedTab = + await PageObjects.observabilityLogsExplorer.getUncategorizedTab(); await uncategorizedTab.click(); - const uncategorizedEntries = await PageObjects.observabilityLogExplorer + const uncategorizedEntries = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(uncategorizedEntries.length).to.be(0); - await PageObjects.observabilityLogExplorer.assertListStatusEmptyPromptExistsWithTitle( + await PageObjects.observabilityLogsExplorer.assertListStatusEmptyPromptExistsWithTitle( noUncategorizedTitle ); }); @@ -186,7 +188,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { 'x-pack/test/functional/es_archives/observability_log_explorer/data_streams' ); cleanupIntegrationsSetup = - await PageObjects.observabilityLogExplorer.setupInitialIntegrations(); + await PageObjects.observabilityLogsExplorer.setupInitialIntegrations(); }); after(async () => { @@ -198,16 +200,16 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('when open on the integrations tab', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); }); beforeEach(async () => { await browser.refresh(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); }); it('should display a list of installed integrations', async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations.length).to.be(3); expect(integrations).to.eql(initialPackagesTexts); @@ -215,55 +217,55 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should sort the integrations list by the clicked sorting option', async () => { // Test ascending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('asc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('asc'); await retry.try(async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql(initialPackagesTexts); }); // Test descending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('desc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('desc'); await retry.try(async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql(initialPackagesTexts.slice().reverse()); }); // Test back ascending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('asc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('asc'); await retry.try(async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql(initialPackagesTexts); }); }); it('should filter the integrations list by the typed integration name', async () => { - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('system'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('system'); await retry.try(async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql([initialPackageMap.system]); }); - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('a'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('a'); await retry.try(async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql([initialPackageMap.apache, initialPackageMap.aws]); }); }); it('should display an empty prompt when the search does not match any result', async () => { - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('no result search text'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('no result search text'); await retry.try(async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations.length).to.be(0); }); - await PageObjects.observabilityLogExplorer.assertListStatusEmptyPromptExistsWithTitle( + await PageObjects.observabilityLogsExplorer.assertListStatusEmptyPromptExistsWithTitle( noIntegrationsTitle ); }); @@ -271,28 +273,28 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should load more integrations by scrolling to the end of the list', async () => { // Install more integrations and reload the page const cleanupAdditionalSetup = - await PageObjects.observabilityLogExplorer.setupAdditionalIntegrations(); + await PageObjects.observabilityLogsExplorer.setupAdditionalIntegrations(); await browser.refresh(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); // Initially fetched integrations await retry.try(async () => { - const { nodes } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { nodes } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(nodes.length).to.be(15); await nodes.at(-1)?.scrollIntoView(); }); // Load more integrations await retry.try(async () => { - const { nodes } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { nodes } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(nodes.length).to.be(20); await nodes.at(-1)?.scrollIntoView(); }); // No other integrations to load after scrolling to last integration await retry.try(async () => { - const { nodes } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { nodes } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(nodes.length).to.be(20); }); @@ -301,28 +303,28 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('clicking on integration and moving into the second navigation level', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); }); beforeEach(async () => { await browser.refresh(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); }); it('should display a list of available datasets', async () => { await retry.try(async () => { - const { nodes } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { nodes } = await PageObjects.observabilityLogsExplorer.getIntegrations(); await nodes[0].click(); }); await retry.try(async () => { const [panelTitleNode, integrationDatasetEntries] = - await PageObjects.observabilityLogExplorer + await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu) => Promise.all([ - PageObjects.observabilityLogExplorer.getPanelTitle(menu), - PageObjects.observabilityLogExplorer.getPanelEntries(menu), + PageObjects.observabilityLogsExplorer.getPanelTitle(menu), + PageObjects.observabilityLogsExplorer.getPanelEntries(menu), ]) ); @@ -334,46 +336,46 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should sort the datasets list by the clicked sorting option', async () => { await retry.try(async () => { - const { nodes } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { nodes } = await PageObjects.observabilityLogsExplorer.getIntegrations(); await nodes[0].click(); }); await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelTitle(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelTitle(menu)); expect(await panelTitleNode.getVisibleText()).to.be('Apache HTTP Server'); }); // Test ascending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('asc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('asc'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(await menuEntries[0].getVisibleText()).to.be('access'); expect(await menuEntries[1].getVisibleText()).to.be('error'); }); // Test descending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('desc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('desc'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(await menuEntries[0].getVisibleText()).to.be('error'); expect(await menuEntries[1].getVisibleText()).to.be('access'); }); // Test back ascending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('asc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('asc'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(await menuEntries[0].getVisibleText()).to.be('access'); expect(await menuEntries[1].getVisibleText()).to.be('error'); @@ -382,33 +384,33 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should filter the datasets list by the typed dataset name', async () => { await retry.try(async () => { - const { nodes } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { nodes } = await PageObjects.observabilityLogsExplorer.getIntegrations(); await nodes[0].click(); }); await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelTitle(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelTitle(menu)); expect(await panelTitleNode.getVisibleText()).to.be('Apache HTTP Server'); }); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(await menuEntries[0].getVisibleText()).to.be('access'); expect(await menuEntries[1].getVisibleText()).to.be('error'); }); - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('err'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('err'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(menuEntries.length).to.be(1); expect(await menuEntries[0].getVisibleText()).to.be('error'); @@ -417,22 +419,22 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should update the current selection with the clicked dataset', async () => { await retry.try(async () => { - const { nodes } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { nodes } = await PageObjects.observabilityLogsExplorer.getIntegrations(); await nodes[0].click(); }); await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelTitle(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelTitle(menu)); expect(await panelTitleNode.getVisibleText()).to.be('Apache HTTP Server'); }); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(await menuEntries[0].getVisibleText()).to.be('access'); menuEntries[0].click(); @@ -440,7 +442,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await retry.try(async () => { const selectorButton = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButton(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButton(); expect(await selectorButton.getVisibleText()).to.be('[Apache HTTP Server] access'); }); @@ -450,25 +452,25 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('when open on the uncategorized tab', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); }); beforeEach(async () => { await browser.refresh(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); - await PageObjects.observabilityLogExplorer + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer .getUncategorizedTab() .then((tab) => tab.click()); }); it('should display a list of available datasets', async () => { await retry.try(async () => { - const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogExplorer + const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() .then((menu) => Promise.all([ - PageObjects.observabilityLogExplorer.getPanelTitle(menu), - PageObjects.observabilityLogExplorer.getPanelEntries(menu), + PageObjects.observabilityLogsExplorer.getPanelTitle(menu), + PageObjects.observabilityLogsExplorer.getPanelEntries(menu), ]) ); @@ -481,19 +483,19 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should sort the datasets list by the clicked sorting option', async () => { await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelTitle(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelTitle(menu)); expect(await panelTitleNode.getVisibleText()).to.be('Uncategorized'); }); // Test ascending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('asc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('asc'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(await menuEntries[0].getVisibleText()).to.be(expectedUncategorized[0]); expect(await menuEntries[1].getVisibleText()).to.be(expectedUncategorized[1]); @@ -501,11 +503,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); // Test descending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('desc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('desc'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(await menuEntries[0].getVisibleText()).to.be(expectedUncategorized[2]); expect(await menuEntries[1].getVisibleText()).to.be(expectedUncategorized[1]); @@ -513,11 +515,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); // Test back ascending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('asc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('asc'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(await menuEntries[0].getVisibleText()).to.be(expectedUncategorized[0]); expect(await menuEntries[1].getVisibleText()).to.be(expectedUncategorized[1]); @@ -527,29 +529,29 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should filter the datasets list by the typed dataset name', async () => { await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelTitle(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelTitle(menu)); expect(await panelTitleNode.getVisibleText()).to.be('Uncategorized'); }); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(await menuEntries[0].getVisibleText()).to.be(expectedUncategorized[0]); expect(await menuEntries[1].getVisibleText()).to.be(expectedUncategorized[1]); expect(await menuEntries[2].getVisibleText()).to.be(expectedUncategorized[2]); }); - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('retail'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('retail'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(menuEntries.length).to.be(1); expect(await menuEntries[0].getVisibleText()).to.be('retail'); @@ -558,17 +560,17 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should update the current selection with the clicked dataset', async () => { await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelTitle(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelTitle(menu)); expect(await panelTitleNode.getVisibleText()).to.be('Uncategorized'); }); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getUncategorizedContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(await menuEntries[0].getVisibleText()).to.be(expectedUncategorized[0]); menuEntries[0].click(); @@ -576,7 +578,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await retry.try(async () => { const selectorButton = - await PageObjects.observabilityLogExplorer.getDatasetSelectorButton(); + await PageObjects.observabilityLogsExplorer.getDatasetSelectorButton(); expect(await selectorButton.getVisibleText()).to.be(expectedUncategorized[0]); }); @@ -585,28 +587,28 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('when open on the data views tab', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); }); beforeEach(async () => { await browser.refresh(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); - await PageObjects.observabilityLogExplorer.getDataViewsTab().then((tab) => tab.click()); + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer.getDataViewsTab().then((tab) => tab.click()); }); it('should display a list of available data views', async () => { await retry.try(async () => { - const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogExplorer + const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() .then((menu) => Promise.all([ - PageObjects.observabilityLogExplorer.getPanelTitle(menu), - PageObjects.observabilityLogExplorer.getPanelEntries(menu), + PageObjects.observabilityLogsExplorer.getPanelTitle(menu), + PageObjects.observabilityLogsExplorer.getPanelEntries(menu), ]) ); expect( - await PageObjects.observabilityLogExplorer.getDataViewsContextMenuTitle( + await PageObjects.observabilityLogsExplorer.getDataViewsContextMenuTitle( panelTitleNode ) ).to.be('Data Views'); @@ -617,34 +619,34 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should sort the data views list by the clicked sorting option', async () => { await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelTitle(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelTitle(menu)); expect( - await PageObjects.observabilityLogExplorer.getDataViewsContextMenuTitle( + await PageObjects.observabilityLogsExplorer.getDataViewsContextMenuTitle( panelTitleNode ) ).to.be('Data Views'); }); // Test descending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('desc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('desc'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(await menuEntries[0].getVisibleText()).to.be(sortedExpectedDataViews[1]); expect(await menuEntries[1].getVisibleText()).to.be(sortedExpectedDataViews[0]); }); // Test back ascending order - await PageObjects.observabilityLogExplorer.clickSortButtonBy('asc'); + await PageObjects.observabilityLogsExplorer.clickSortButtonBy('asc'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(await menuEntries[0].getVisibleText()).to.be(sortedExpectedDataViews[0]); expect(await menuEntries[1].getVisibleText()).to.be(sortedExpectedDataViews[1]); @@ -653,32 +655,32 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should filter the datasets list by the typed data view name', async () => { await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelTitle(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelTitle(menu)); expect( - await PageObjects.observabilityLogExplorer.getDataViewsContextMenuTitle( + await PageObjects.observabilityLogsExplorer.getDataViewsContextMenuTitle( panelTitleNode ) ).to.be('Data Views'); }); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(await menuEntries[0].getVisibleText()).to.be(expectedDataViews[0]); expect(await menuEntries[1].getVisibleText()).to.be(expectedDataViews[1]); }); - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('logs'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('logs'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(menuEntries.length).to.be(1); expect(await menuEntries[0].getVisibleText()).to.be('logs-*'); @@ -687,21 +689,21 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should navigate to Discover with the clicked data view preselected', async () => { await retry.try(async () => { - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelTitle(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelTitle(menu)); expect( - await PageObjects.observabilityLogExplorer.getDataViewsContextMenuTitle( + await PageObjects.observabilityLogsExplorer.getDataViewsContextMenuTitle( panelTitleNode ) ).to.be('Data Views'); }); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getDataViewsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(await menuEntries[1].getVisibleText()).to.be(expectedDataViews[1]); menuEntries[1].click(); @@ -717,27 +719,27 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('when open/close the selector', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); }); beforeEach(async () => { await browser.refresh(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); }); it('should restore the latest navigation panel', async () => { await retry.try(async () => { - const { nodes } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { nodes } = await PageObjects.observabilityLogsExplorer.getIntegrations(); await nodes[0].click(); }); await retry.try(async () => { - const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogExplorer + const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu) => Promise.all([ - PageObjects.observabilityLogExplorer.getPanelTitle(menu), - PageObjects.observabilityLogExplorer.getPanelEntries(menu), + PageObjects.observabilityLogsExplorer.getPanelTitle(menu), + PageObjects.observabilityLogsExplorer.getPanelEntries(menu), ]) ); @@ -746,16 +748,16 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(await menuEntries[1].getVisibleText()).to.be('error'); }); - await PageObjects.observabilityLogExplorer.closeDatasetSelector(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer.closeDatasetSelector(); + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); await retry.try(async () => { - const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogExplorer + const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu) => Promise.all([ - PageObjects.observabilityLogExplorer.getPanelTitle(menu), - PageObjects.observabilityLogExplorer.getPanelEntries(menu), + PageObjects.observabilityLogsExplorer.getPanelTitle(menu), + PageObjects.observabilityLogsExplorer.getPanelEntries(menu), ]) ); @@ -766,18 +768,18 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('should restore the latest search results', async () => { - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('system'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('system'); await retry.try(async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql([initialPackageMap.system]); }); - await PageObjects.observabilityLogExplorer.closeDatasetSelector(); - await PageObjects.observabilityLogExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer.closeDatasetSelector(); + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); await retry.try(async () => { - const { integrations } = await PageObjects.observabilityLogExplorer.getIntegrations(); + const { integrations } = await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql([initialPackageMap.system]); }); }); @@ -785,29 +787,29 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('when switching between tabs or integration panels', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); }); it('should remember the latest search and restore its results', async () => { - await PageObjects.observabilityLogExplorer.openDatasetSelector(); - await PageObjects.observabilityLogExplorer.clearSearchField(); + await PageObjects.observabilityLogsExplorer.openDatasetSelector(); + await PageObjects.observabilityLogsExplorer.clearSearchField(); - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('apache'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('apache'); await retry.try(async () => { const { nodes, integrations } = - await PageObjects.observabilityLogExplorer.getIntegrations(); + await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql([initialPackageMap.apache]); nodes[0].click(); }); await retry.try(async () => { - const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogExplorer + const [panelTitleNode, menuEntries] = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() .then((menu) => Promise.all([ - PageObjects.observabilityLogExplorer.getPanelTitle(menu), - PageObjects.observabilityLogExplorer.getPanelEntries(menu), + PageObjects.observabilityLogsExplorer.getPanelTitle(menu), + PageObjects.observabilityLogsExplorer.getPanelEntries(menu), ]) ); @@ -816,40 +818,40 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(await menuEntries[1].getVisibleText()).to.be('error'); }); - await PageObjects.observabilityLogExplorer.typeSearchFieldWith('err'); + await PageObjects.observabilityLogsExplorer.typeSearchFieldWith('err'); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); expect(menuEntries.length).to.be(1); expect(await menuEntries[0].getVisibleText()).to.be('error'); }); // Navigate back to integrations - const panelTitleNode = await PageObjects.observabilityLogExplorer + const panelTitleNode = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelTitle(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelTitle(menu)); panelTitleNode.click(); await retry.try(async () => { const { nodes, integrations } = - await PageObjects.observabilityLogExplorer.getIntegrations(); + await PageObjects.observabilityLogsExplorer.getIntegrations(); expect(integrations).to.eql([initialPackageMap.apache]); - const searchValue = await PageObjects.observabilityLogExplorer.getSearchFieldValue(); + const searchValue = await PageObjects.observabilityLogsExplorer.getSearchFieldValue(); expect(searchValue).to.eql('apache'); nodes[0].click(); }); await retry.try(async () => { - const menuEntries = await PageObjects.observabilityLogExplorer + const menuEntries = await PageObjects.observabilityLogsExplorer .getIntegrationsContextMenu() - .then((menu) => PageObjects.observabilityLogExplorer.getPanelEntries(menu)); + .then((menu) => PageObjects.observabilityLogsExplorer.getPanelEntries(menu)); - const searchValue = await PageObjects.observabilityLogExplorer.getSearchFieldValue(); + const searchValue = await PageObjects.observabilityLogsExplorer.getSearchFieldValue(); expect(searchValue).to.eql('err'); expect(menuEntries.length).to.be(1); diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/filter_controls.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/filter_controls.ts index 4cd5924e7608c..d0a4b79abbb51 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/filter_controls.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/filter_controls.ts @@ -9,7 +9,7 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getService, getPageObjects }: FtrProviderContext) { const kibanaServer = getService('kibanaServer'); const testSubjects = getService('testSubjects'); - const PageObjects = getPageObjects(['observabilityLogExplorer', 'svlCommonPage']); + const PageObjects = getPageObjects(['observabilityLogsExplorer', 'svlCommonPage']); describe('Filter controls customization', () => { before('initialize tests', async () => { @@ -23,7 +23,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('renders a filter controls section as part of the unified search bar', async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); await testSubjects.existOrFail('datasetFiltersCustomization', { allowHidden: true }); }); }); diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/flyout.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/flyout.ts index d33d9e97d18c6..f8087eff743c3 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/flyout.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/flyout.ts @@ -34,22 +34,22 @@ const docs = [ export default function ({ getService, getPageObjects }: FtrProviderContext) { const dataGrid = getService('dataGrid'); const testSubjects = getService('testSubjects'); - const PageObjects = getPageObjects(['observabilityLogExplorer', 'svlCommonPage']); + const PageObjects = getPageObjects(['observabilityLogsExplorer', 'svlCommonPage']); describe('Flyout content customization', () => { let cleanupDataStreamSetup: () => Promise; before('initialize tests', async () => { - cleanupDataStreamSetup = await PageObjects.observabilityLogExplorer.setupDataStream( + cleanupDataStreamSetup = await PageObjects.observabilityLogsExplorer.setupDataStream( DATASET_NAME, NAMESPACE ); - await PageObjects.observabilityLogExplorer.ingestLogEntries(DATA_STREAM_NAME, docs); + await PageObjects.observabilityLogsExplorer.ingestLogEntries(DATA_STREAM_NAME, docs); await PageObjects.svlCommonPage.login(); }); beforeEach(async () => { - await PageObjects.observabilityLogExplorer.navigateTo({ + await PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { time: { from: new Date(NOW - 60_000).toISOString(), @@ -69,30 +69,30 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should mount the flyout customization content', async () => { await dataGrid.clickRowToggle(); - await testSubjects.existOrFail('logExplorerFlyoutDetail'); + await testSubjects.existOrFail('logsExplorerFlyoutDetail'); }); it('should display a timestamp badge', async () => { await dataGrid.clickRowToggle(); - await testSubjects.existOrFail('logExplorerFlyoutLogTimestamp'); + await testSubjects.existOrFail('logsExplorerFlyoutLogTimestamp'); }); it('should display a log level badge when available', async () => { await dataGrid.clickRowToggle(); - await testSubjects.existOrFail('logExplorerFlyoutLogLevel'); + await testSubjects.existOrFail('logsExplorerFlyoutLogLevel'); await dataGrid.closeFlyout(); await dataGrid.clickRowToggle({ rowIndex: 1 }); - await testSubjects.missingOrFail('logExplorerFlyoutLogLevel'); + await testSubjects.missingOrFail('logsExplorerFlyoutLogLevel'); }); it('should display a message code block when available', async () => { await dataGrid.clickRowToggle(); - await testSubjects.existOrFail('logExplorerFlyoutLogMessage'); + await testSubjects.existOrFail('logsExplorerFlyoutLogMessage'); await dataGrid.closeFlyout(); await dataGrid.clickRowToggle({ rowIndex: 1 }); - await testSubjects.missingOrFail('logExplorerFlyoutLogMessage'); + await testSubjects.missingOrFail('logsExplorerFlyoutLogMessage'); }); }); } diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/flyout_highlights.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/flyout_highlights.ts index 85560ee85dd4b..9fa836815a554 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/flyout_highlights.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/flyout_highlights.ts @@ -35,7 +35,7 @@ const sharedDoc = { export default function ({ getService, getPageObjects }: FtrProviderContext) { const dataGrid = getService('dataGrid'); const testSubjects = getService('testSubjects'); - const PageObjects = getPageObjects(['observabilityLogExplorer', 'svlCommonPage']); + const PageObjects = getPageObjects(['observabilityLogsExplorer', 'svlCommonPage']); describe('Flyout highlight customization', () => { let cleanupDataStreamSetup: () => Promise; @@ -61,11 +61,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const docs = [sharedDoc, docWithoutServiceName, docWithoutServiceInfraContainer]; before('setup DataStream', async () => { - cleanupDataStreamSetup = await PageObjects.observabilityLogExplorer.setupDataStream( + cleanupDataStreamSetup = await PageObjects.observabilityLogsExplorer.setupDataStream( DATASET_NAME, NAMESPACE ); - await PageObjects.observabilityLogExplorer.ingestLogEntries(DATA_STREAM_NAME, docs); + await PageObjects.observabilityLogsExplorer.ingestLogEntries(DATA_STREAM_NAME, docs); await PageObjects.svlCommonPage.login(); }); @@ -77,7 +77,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); beforeEach(async () => { - await PageObjects.observabilityLogExplorer.navigateTo({ + await PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { time: { from: new Date(NOW - 60_000).toISOString(), @@ -90,29 +90,29 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should load the service container with all fields', async () => { await dataGrid.clickRowToggle(); - await testSubjects.existOrFail('logExplorerFlyoutHighlightSectionServiceInfra'); - await testSubjects.existOrFail('logExplorerFlyoutService'); - await testSubjects.existOrFail('logExplorerFlyoutTrace'); - await testSubjects.existOrFail('logExplorerFlyoutHostName'); - await testSubjects.existOrFail('logExplorerFlyoutClusterName'); - await testSubjects.existOrFail('logExplorerFlyoutResourceId'); + await testSubjects.existOrFail('logsExplorerFlyoutHighlightSectionServiceInfra'); + await testSubjects.existOrFail('logsExplorerFlyoutService'); + await testSubjects.existOrFail('logsExplorerFlyoutTrace'); + await testSubjects.existOrFail('logsExplorerFlyoutHostName'); + await testSubjects.existOrFail('logsExplorerFlyoutClusterName'); + await testSubjects.existOrFail('logsExplorerFlyoutResourceId'); await dataGrid.closeFlyout(); }); it('should load the service container even when 1 field is missing', async () => { await dataGrid.clickRowToggle({ rowIndex: 1 }); - await testSubjects.existOrFail('logExplorerFlyoutHighlightSectionServiceInfra'); - await testSubjects.missingOrFail('logExplorerFlyoutService'); - await testSubjects.existOrFail('logExplorerFlyoutTrace'); - await testSubjects.existOrFail('logExplorerFlyoutHostName'); - await testSubjects.existOrFail('logExplorerFlyoutClusterName'); - await testSubjects.existOrFail('logExplorerFlyoutResourceId'); + await testSubjects.existOrFail('logsExplorerFlyoutHighlightSectionServiceInfra'); + await testSubjects.missingOrFail('logsExplorerFlyoutService'); + await testSubjects.existOrFail('logsExplorerFlyoutTrace'); + await testSubjects.existOrFail('logsExplorerFlyoutHostName'); + await testSubjects.existOrFail('logsExplorerFlyoutClusterName'); + await testSubjects.existOrFail('logsExplorerFlyoutResourceId'); await dataGrid.closeFlyout(); }); it('should not load the service container if all fields are missing', async () => { await dataGrid.clickRowToggle({ rowIndex: 2 }); - await testSubjects.missingOrFail('logExplorerFlyoutHighlightSectionServiceInfra'); + await testSubjects.missingOrFail('logsExplorerFlyoutHighlightSectionServiceInfra'); await dataGrid.closeFlyout(); }); }); @@ -131,11 +131,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const docs = [sharedDoc, docWithoutCloudProviderAndInstanceId, docWithoutCloudContainer]; before('setup DataStream', async () => { - cleanupDataStreamSetup = await PageObjects.observabilityLogExplorer.setupDataStream( + cleanupDataStreamSetup = await PageObjects.observabilityLogsExplorer.setupDataStream( DATASET_NAME, NAMESPACE ); - await PageObjects.observabilityLogExplorer.ingestLogEntries(DATA_STREAM_NAME, docs); + await PageObjects.observabilityLogsExplorer.ingestLogEntries(DATA_STREAM_NAME, docs); await PageObjects.svlCommonPage.login(); }); @@ -147,7 +147,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); beforeEach(async () => { - await PageObjects.observabilityLogExplorer.navigateTo({ + await PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { time: { from: new Date(NOW - 60_000).toISOString(), @@ -160,36 +160,36 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should load the cloud container with all fields', async () => { await dataGrid.clickRowToggle(); - await testSubjects.existOrFail('logExplorerFlyoutHighlightSectionCloud'); - await testSubjects.existOrFail('logExplorerFlyoutCloudProvider'); - await testSubjects.existOrFail('logExplorerFlyoutCloudRegion'); - await testSubjects.existOrFail('logExplorerFlyoutCloudAz'); - await testSubjects.existOrFail('logExplorerFlyoutCloudProjectId'); - await testSubjects.existOrFail('logExplorerFlyoutCloudInstanceId'); + await testSubjects.existOrFail('logsExplorerFlyoutHighlightSectionCloud'); + await testSubjects.existOrFail('logsExplorerFlyoutCloudProvider'); + await testSubjects.existOrFail('logsExplorerFlyoutCloudRegion'); + await testSubjects.existOrFail('logsExplorerFlyoutCloudAz'); + await testSubjects.existOrFail('logsExplorerFlyoutCloudProjectId'); + await testSubjects.existOrFail('logsExplorerFlyoutCloudInstanceId'); await dataGrid.closeFlyout(); }); it('should load the cloud container even when some fields are missing', async () => { await dataGrid.clickRowToggle({ rowIndex: 1 }); - await testSubjects.existOrFail('logExplorerFlyoutHighlightSectionCloud'); + await testSubjects.existOrFail('logsExplorerFlyoutHighlightSectionCloud'); - await testSubjects.missingOrFail('logExplorerFlyoutCloudProvider'); - await testSubjects.missingOrFail('logExplorerFlyoutCloudInstanceId'); + await testSubjects.missingOrFail('logsExplorerFlyoutCloudProvider'); + await testSubjects.missingOrFail('logsExplorerFlyoutCloudInstanceId'); - await testSubjects.existOrFail('logExplorerFlyoutCloudRegion'); - await testSubjects.existOrFail('logExplorerFlyoutCloudAz'); - await testSubjects.existOrFail('logExplorerFlyoutCloudProjectId'); + await testSubjects.existOrFail('logsExplorerFlyoutCloudRegion'); + await testSubjects.existOrFail('logsExplorerFlyoutCloudAz'); + await testSubjects.existOrFail('logsExplorerFlyoutCloudProjectId'); await dataGrid.closeFlyout(); }); it('should not load the cloud container if all fields are missing', async () => { await dataGrid.clickRowToggle({ rowIndex: 2 }); - await testSubjects.missingOrFail('logExplorerFlyoutHighlightSectionCloud'); - await testSubjects.missingOrFail('logExplorerFlyoutCloudProvider'); - await testSubjects.missingOrFail('logExplorerFlyoutCloudRegion'); - await testSubjects.missingOrFail('logExplorerFlyoutCloudAz'); - await testSubjects.missingOrFail('logExplorerFlyoutCloudProjectId'); - await testSubjects.missingOrFail('logExplorerFlyoutCloudInstanceId'); + await testSubjects.missingOrFail('logsExplorerFlyoutHighlightSectionCloud'); + await testSubjects.missingOrFail('logsExplorerFlyoutCloudProvider'); + await testSubjects.missingOrFail('logsExplorerFlyoutCloudRegion'); + await testSubjects.missingOrFail('logsExplorerFlyoutCloudAz'); + await testSubjects.missingOrFail('logsExplorerFlyoutCloudProjectId'); + await testSubjects.missingOrFail('logsExplorerFlyoutCloudInstanceId'); await dataGrid.closeFlyout(); }); }); @@ -203,11 +203,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const docs = [sharedDoc, docWithoutLogPathAndAgentName]; before('setup DataStream', async () => { - cleanupDataStreamSetup = await PageObjects.observabilityLogExplorer.setupDataStream( + cleanupDataStreamSetup = await PageObjects.observabilityLogsExplorer.setupDataStream( DATASET_NAME, NAMESPACE ); - await PageObjects.observabilityLogExplorer.ingestLogEntries(DATA_STREAM_NAME, docs); + await PageObjects.observabilityLogsExplorer.ingestLogEntries(DATA_STREAM_NAME, docs); await PageObjects.svlCommonPage.login(); }); @@ -219,7 +219,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); beforeEach(async () => { - await PageObjects.observabilityLogExplorer.navigateTo({ + await PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { time: { from: new Date(NOW - 60_000).toISOString(), @@ -232,23 +232,23 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should load the other container with all fields', async () => { await dataGrid.clickRowToggle(); - await testSubjects.existOrFail('logExplorerFlyoutHighlightSectionOther'); - await testSubjects.existOrFail('logExplorerFlyoutLogPathFile'); - await testSubjects.existOrFail('logExplorerFlyoutNamespace'); - await testSubjects.existOrFail('logExplorerFlyoutDataset'); - await testSubjects.existOrFail('logExplorerFlyoutLogShipper'); + await testSubjects.existOrFail('logsExplorerFlyoutHighlightSectionOther'); + await testSubjects.existOrFail('logsExplorerFlyoutLogPathFile'); + await testSubjects.existOrFail('logsExplorerFlyoutNamespace'); + await testSubjects.existOrFail('logsExplorerFlyoutDataset'); + await testSubjects.existOrFail('logsExplorerFlyoutLogShipper'); await dataGrid.closeFlyout(); }); it('should load the other container even when some fields are missing', async () => { await dataGrid.clickRowToggle({ rowIndex: 1 }); - await testSubjects.existOrFail('logExplorerFlyoutHighlightSectionOther'); + await testSubjects.existOrFail('logsExplorerFlyoutHighlightSectionOther'); - await testSubjects.missingOrFail('logExplorerFlyoutLogPathFile'); - await testSubjects.missingOrFail('logExplorerFlyoutLogShipper'); + await testSubjects.missingOrFail('logsExplorerFlyoutLogPathFile'); + await testSubjects.missingOrFail('logsExplorerFlyoutLogShipper'); - await testSubjects.existOrFail('logExplorerFlyoutNamespace'); - await testSubjects.existOrFail('logExplorerFlyoutDataset'); + await testSubjects.existOrFail('logsExplorerFlyoutNamespace'); + await testSubjects.existOrFail('logsExplorerFlyoutDataset'); await dataGrid.closeFlyout(); }); }); diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/header_menu.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/header_menu.ts index 386177dde6f67..d66f7b36f7632 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/header_menu.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/header_menu.ts @@ -15,7 +15,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const testSubjects = getService('testSubjects'); const PageObjects = getPageObjects([ 'discover', - 'observabilityLogExplorer', + 'observabilityLogsExplorer', 'svlCommonPage', 'timePicker', 'header', @@ -31,7 +31,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { ); await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional'); await PageObjects.svlCommonPage.login(); - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); await PageObjects.header.waitUntilLoadingHasFinished(); }); @@ -45,13 +45,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('should inject the app header menu on the top navbar', async () => { - const headerMenu = await PageObjects.observabilityLogExplorer.getHeaderMenu(); + const headerMenu = await PageObjects.observabilityLogsExplorer.getHeaderMenu(); expect(await headerMenu.isDisplayed()).to.be(true); }); describe('Discover fallback link', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo({ + await PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { // avoid aligning with the test data, because that's what Discover // does later in this test and we wouldn't be able to check the time @@ -67,7 +67,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('should render a button link ', async () => { - const discoverLink = await PageObjects.observabilityLogExplorer.getDiscoverFallbackLink(); + const discoverLink = await PageObjects.observabilityLogsExplorer.getDiscoverFallbackLink(); expect(await discoverLink.isDisplayed()).to.be(true); }); @@ -78,9 +78,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); const timeConfig = await PageObjects.timePicker.getTimeConfig(); // Set query bar value - await PageObjects.observabilityLogExplorer.submitQuery('*favicon*'); + await PageObjects.observabilityLogsExplorer.submitQuery('*favicon*'); - const discoverLink = await PageObjects.observabilityLogExplorer.getDiscoverFallbackLink(); + const discoverLink = await PageObjects.observabilityLogsExplorer.getDiscoverFallbackLink(); discoverLink.click(); await PageObjects.discover.waitForDocTableLoadingComplete(); @@ -99,14 +99,16 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(await PageObjects.timePicker.getTimeConfig()).to.eql(timeConfig); }); await retry.try(async () => { - expect(await PageObjects.observabilityLogExplorer.getQueryBarValue()).to.eql('*favicon*'); + expect(await PageObjects.observabilityLogsExplorer.getQueryBarValue()).to.eql( + '*favicon*' + ); }); }); }); describe('Discover tabs', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo({ + await PageObjects.observabilityLogsExplorer.navigateTo({ pageState: { // avoid aligning with the test data, because that's what Discover // does later in this test and we wouldn't be able to check the time @@ -130,7 +132,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const timeConfig = await PageObjects.timePicker.getTimeConfig(); // Set query bar value - await PageObjects.observabilityLogExplorer.submitQuery('*favicon*'); + await PageObjects.observabilityLogsExplorer.submitQuery('*favicon*'); // go to discover tab await testSubjects.click('discoverTab'); @@ -159,13 +161,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); await retry.try(async () => { - expect(await PageObjects.observabilityLogExplorer.getQueryBarValue()).not.to.eql( + expect(await PageObjects.observabilityLogsExplorer.getQueryBarValue()).not.to.eql( '*favicon*' ); }); - // go to log explorer tab - await testSubjects.click('logExplorerTab'); + // go to logs explorer tab + await testSubjects.click('logsExplorerTab'); await PageObjects.svlCommonNavigation.breadcrumbs.expectBreadcrumbExists({ deepLinkId: 'discover', }); @@ -178,17 +180,17 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('Add data link', () => { before(async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); await PageObjects.header.waitUntilLoadingHasFinished(); }); it('should render a button link ', async () => { - const onboardingLink = await PageObjects.observabilityLogExplorer.getOnboardingLink(); + const onboardingLink = await PageObjects.observabilityLogsExplorer.getOnboardingLink(); expect(await onboardingLink.isDisplayed()).to.be(true); }); it('should navigate to the observability onboarding overview page', async () => { - const onboardingLink = await PageObjects.observabilityLogExplorer.getOnboardingLink(); + const onboardingLink = await PageObjects.observabilityLogsExplorer.getOnboardingLink(); onboardingLink.click(); await retry.try(async () => { diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/index.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/index.ts index ad6f7b7278e48..c248e31df92e3 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/index.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/index.ts @@ -8,7 +8,7 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { - describe('Observability Log Explorer', function () { + describe('Observability Logs Explorer', function () { loadTestFile(require.resolve('./app')); loadTestFile(require.resolve('./columns_selection')); loadTestFile(require.resolve('./dataset_selection_state')); From 889e2a71e3e7835c282feb2e33e2a667e68a037e Mon Sep 17 00:00:00 2001 From: gbamparop Date: Mon, 29 Jan 2024 17:56:46 +0000 Subject: [PATCH 2/6] Change app URL and rename test folder --- .buildkite/ftr_configs.yml | 2 +- .github/CODEOWNERS | 4 +- packages/deeplinks/observability/constants.ts | 2 +- .../deeplinks/observability/deep_links.ts | 4 +- packages/deeplinks/observability/index.ts | 2 +- .../collectors/application_usage/schema.ts | 2 +- src/plugins/telemetry/schema/oss_plugins.json | 2 +- x-pack/plugins/infra/public/plugin.ts | 2 +- .../custom_logs/install_elastic_agent.cy.ts | 2 +- .../e2e/cypress/e2e/logs/system_logs.cy.ts | 4 +- .../logs_explorer/common/constants.ts | 2 +- .../observability_logs_explorer/README.md | 10 ++--- .../common/index.ts | 2 +- .../common/locators/locators.test.ts | 22 +++++------ .../locators/utils/construct_locator_path.ts | 8 ++-- .../common/url_schema/common.ts | 2 +- .../common/url_schema/index.ts | 2 +- ...edirect_to_observability_logs_explorer.tsx | 36 ++++++++++++++++++ .../public/plugin.ts | 21 ++++++++-- .../src/url_state_storage_service.ts | 6 +-- .../public/utils/breadcrumbs.tsx | 4 +- .../public/navigation_tree.ts | 4 +- .../app.ts | 4 +- .../columns_selection.ts | 0 .../config.ts | 0 .../dataset_selection_state.ts | 0 .../dataset_selector.ts | 4 +- .../filter_controls.ts | 0 .../flyout.ts | 0 .../flyout_highlights.ts | 0 .../header_menu.ts | 4 +- .../index.ts | 0 x-pack/test/functional/config.base.js | 2 +- .../data_streams/data.json.gz | Bin .../data_streams/mappings.json | 0 .../observability_log_explorer.ts | 6 +-- .../cypress/e2e/navigation.cy.ts | 2 +- .../test_suites/observability/index.ts | 2 +- .../test_suites/observability/navigation.ts | 8 ++-- .../app.ts | 0 .../columns_selection.ts | 0 .../dataset_selection_state.ts | 0 .../dataset_selector.ts | 4 +- .../filter_controls.ts | 0 .../flyout.ts | 0 .../flyout_highlights.ts | 0 .../header_menu.ts | 10 ++--- .../index.ts | 0 48 files changed, 121 insertions(+), 70 deletions(-) create mode 100644 x-pack/plugins/observability_solution/observability_logs_explorer/public/applications/redirect_to_observability_logs_explorer.tsx rename x-pack/test/functional/apps/{observability_log_explorer => observability_logs_explorer}/app.ts (95%) rename x-pack/test/functional/apps/{observability_log_explorer => observability_logs_explorer}/columns_selection.ts (100%) rename x-pack/test/functional/apps/{observability_log_explorer => observability_logs_explorer}/config.ts (100%) rename x-pack/test/functional/apps/{observability_log_explorer => observability_logs_explorer}/dataset_selection_state.ts (100%) rename x-pack/test/functional/apps/{observability_log_explorer => observability_logs_explorer}/dataset_selector.ts (99%) rename x-pack/test/functional/apps/{observability_log_explorer => observability_logs_explorer}/filter_controls.ts (100%) rename x-pack/test/functional/apps/{observability_log_explorer => observability_logs_explorer}/flyout.ts (100%) rename x-pack/test/functional/apps/{observability_log_explorer => observability_logs_explorer}/flyout_highlights.ts (100%) rename x-pack/test/functional/apps/{observability_log_explorer => observability_logs_explorer}/header_menu.ts (95%) rename x-pack/test/functional/apps/{observability_log_explorer => observability_logs_explorer}/index.ts (100%) rename x-pack/test/functional/es_archives/{observability_log_explorer => observability_logs_explorer}/data_streams/data.json.gz (100%) rename x-pack/test/functional/es_archives/{observability_log_explorer => observability_logs_explorer}/data_streams/mappings.json (100%) rename x-pack/test_serverless/functional/test_suites/observability/{observability_log_explorer => observability_logs_explorer}/app.ts (100%) rename x-pack/test_serverless/functional/test_suites/observability/{observability_log_explorer => observability_logs_explorer}/columns_selection.ts (100%) rename x-pack/test_serverless/functional/test_suites/observability/{observability_log_explorer => observability_logs_explorer}/dataset_selection_state.ts (100%) rename x-pack/test_serverless/functional/test_suites/observability/{observability_log_explorer => observability_logs_explorer}/dataset_selector.ts (99%) rename x-pack/test_serverless/functional/test_suites/observability/{observability_log_explorer => observability_logs_explorer}/filter_controls.ts (100%) rename x-pack/test_serverless/functional/test_suites/observability/{observability_log_explorer => observability_logs_explorer}/flyout.ts (100%) rename x-pack/test_serverless/functional/test_suites/observability/{observability_log_explorer => observability_logs_explorer}/flyout_highlights.ts (100%) rename x-pack/test_serverless/functional/test_suites/observability/{observability_log_explorer => observability_logs_explorer}/header_menu.ts (96%) rename x-pack/test_serverless/functional/test_suites/observability/{observability_log_explorer => observability_logs_explorer}/index.ts (100%) diff --git a/.buildkite/ftr_configs.yml b/.buildkite/ftr_configs.yml index a9c45744cec2a..866386232dc7d 100644 --- a/.buildkite/ftr_configs.yml +++ b/.buildkite/ftr_configs.yml @@ -306,7 +306,7 @@ enabled: - x-pack/test/functional/apps/ml/short_tests/config.ts - x-pack/test/functional/apps/ml/stack_management_jobs/config.ts - x-pack/test/functional/apps/monitoring/config.ts - - x-pack/test/functional/apps/observability_log_explorer/config.ts + - x-pack/test/functional/apps/observability_logs_explorer/config.ts - x-pack/test/functional/apps/painless_lab/config.ts - x-pack/test/functional/apps/remote_clusters/config.ts - x-pack/test/functional/apps/reporting_management/config.ts diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 20a33917c1819..22199b5ac629d 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1055,7 +1055,7 @@ x-pack/plugins/infra/server/lib/alerting @elastic/obs-ux-management-team /x-pack/test/functional/apps/monitoring @elastic/obs-ux-infra_services-team @elastic/stack-monitoring /x-pack/test/api_integration/apis/monitoring @elastic/obs-ux-infra_services-team @elastic/stack-monitoring /x-pack/test/api_integration/apis/monitoring_collection @elastic/obs-ux-infra_services-team @elastic/stack-monitoring -/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer @elastic/obs-ux-logs-team +/x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer @elastic/obs-ux-logs-team # Fleet /fleet_packages.json @elastic/fleet @@ -1086,7 +1086,7 @@ x-pack/plugins/infra/server/lib/alerting @elastic/obs-ux-management-team # Logs /x-pack/test/api_integration/apis/logs_ui @elastic/obs-ux-logs-team -/x-pack/test/functional/apps/observability_log_explorer @elastic/obs-ux-logs-team +/x-pack/test/functional/apps/observability_logs_explorer @elastic/obs-ux-logs-team # Observability onboarding tour /x-pack/plugins/observability_shared/public/components/tour @elastic/platform-onboarding diff --git a/packages/deeplinks/observability/constants.ts b/packages/deeplinks/observability/constants.ts index f00fb24e40886..1c44778cda28a 100644 --- a/packages/deeplinks/observability/constants.ts +++ b/packages/deeplinks/observability/constants.ts @@ -8,7 +8,7 @@ export const LOGS_APP_ID = 'logs'; -export const OBSERVABILITY_LOG_EXPLORER_APP_ID = 'observability-log-explorer'; +export const OBSERVABILITY_LOGS_EXPLORER_APP_ID = 'observability-logs-explorer'; export const OBSERVABILITY_OVERVIEW_APP_ID = 'observability-overview'; diff --git a/packages/deeplinks/observability/deep_links.ts b/packages/deeplinks/observability/deep_links.ts index 50082a1d41800..3a4d9e4248f7d 100644 --- a/packages/deeplinks/observability/deep_links.ts +++ b/packages/deeplinks/observability/deep_links.ts @@ -10,14 +10,14 @@ import { APM_APP_ID, LOGS_APP_ID, METRICS_APP_ID, - OBSERVABILITY_LOG_EXPLORER_APP_ID, + OBSERVABILITY_LOGS_EXPLORER_APP_ID, OBSERVABILITY_ONBOARDING_APP_ID, OBSERVABILITY_OVERVIEW_APP_ID, SYNTHETICS_APP_ID, } from './constants'; type LogsApp = typeof LOGS_APP_ID; -type ObservabilityLogExplorerApp = typeof OBSERVABILITY_LOG_EXPLORER_APP_ID; +type ObservabilityLogExplorerApp = typeof OBSERVABILITY_LOGS_EXPLORER_APP_ID; type ObservabilityOverviewApp = typeof OBSERVABILITY_OVERVIEW_APP_ID; type MetricsApp = typeof METRICS_APP_ID; type ApmApp = typeof APM_APP_ID; diff --git a/packages/deeplinks/observability/index.ts b/packages/deeplinks/observability/index.ts index 3d816db884765..46d9e52fb5eec 100644 --- a/packages/deeplinks/observability/index.ts +++ b/packages/deeplinks/observability/index.ts @@ -8,7 +8,7 @@ export { LOGS_APP_ID, - OBSERVABILITY_LOG_EXPLORER_APP_ID, + OBSERVABILITY_LOGS_EXPLORER_APP_ID, OBSERVABILITY_ONBOARDING_APP_ID, OBSERVABILITY_OVERVIEW_APP_ID, } from './constants'; diff --git a/src/plugins/kibana_usage_collection/server/collectors/application_usage/schema.ts b/src/plugins/kibana_usage_collection/server/collectors/application_usage/schema.ts index c7ec7deaa16a9..148d8ae35b406 100644 --- a/src/plugins/kibana_usage_collection/server/collectors/application_usage/schema.ts +++ b/src/plugins/kibana_usage_collection/server/collectors/application_usage/schema.ts @@ -154,7 +154,7 @@ export const applicationUsageSchema = { maps: commonSchema, ml: commonSchema, monitoring: commonSchema, - 'observability-log-explorer': commonSchema, + 'observability-logs-explorer': commonSchema, 'observability-overview': commonSchema, observabilityOnboarding: commonSchema, observabilityAIAssistant: commonSchema, diff --git a/src/plugins/telemetry/schema/oss_plugins.json b/src/plugins/telemetry/schema/oss_plugins.json index 7fbf4ad7aeeb3..4d23315c369d0 100644 --- a/src/plugins/telemetry/schema/oss_plugins.json +++ b/src/plugins/telemetry/schema/oss_plugins.json @@ -4587,7 +4587,7 @@ } } }, - "observability-log-explorer": { + "observability-logs-explorer": { "properties": { "appId": { "type": "keyword", diff --git a/x-pack/plugins/infra/public/plugin.ts b/x-pack/plugins/infra/public/plugin.ts index f89d99a43a57b..0732093e2d7bf 100644 --- a/x-pack/plugins/infra/public/plugin.ts +++ b/x-pack/plugins/infra/public/plugin.ts @@ -128,7 +128,7 @@ export class Plugin implements InfraClientPluginClass { entries: [ { label: 'Explorer', - app: 'observability-log-explorer', + app: 'observability-logs-explorer', path: '/', isBetaFeature: true, }, diff --git a/x-pack/plugins/observability_onboarding/e2e/cypress/e2e/logs/custom_logs/install_elastic_agent.cy.ts b/x-pack/plugins/observability_onboarding/e2e/cypress/e2e/logs/custom_logs/install_elastic_agent.cy.ts index c0c783a852a25..3f85bb560fa6f 100644 --- a/x-pack/plugins/observability_onboarding/e2e/cypress/e2e/logs/custom_logs/install_elastic_agent.cy.ts +++ b/x-pack/plugins/observability_onboarding/e2e/cypress/e2e/logs/custom_logs/install_elastic_agent.cy.ts @@ -622,7 +622,7 @@ describe('[Logs onboarding] Custom logs - install elastic agent', () => { cy.wait('@checkOnboardingProgress'); cy.getByTestSubj('obltOnboardingExploreLogs').should('exist').click(); - cy.url().should('include', '/app/observability-log-explorer'); + cy.url().should('include', '/app/observability-logs-explorer'); cy.get('[data-test-subj="datasetSelectorPopoverButton"]') .contains('[Mylogs] mylogs', { matchCase: false }) .should('exist'); diff --git a/x-pack/plugins/observability_onboarding/e2e/cypress/e2e/logs/system_logs.cy.ts b/x-pack/plugins/observability_onboarding/e2e/cypress/e2e/logs/system_logs.cy.ts index 1af201ca2c357..8b95d171a70ef 100644 --- a/x-pack/plugins/observability_onboarding/e2e/cypress/e2e/logs/system_logs.cy.ts +++ b/x-pack/plugins/observability_onboarding/e2e/cypress/e2e/logs/system_logs.cy.ts @@ -677,7 +677,7 @@ describe('[Logs onboarding] System logs', () => { cy.wait('@systemIntegrationInstall'); cy.getByTestSubj('obltOnboardingExploreLogs').should('exist').click(); - cy.url().should('include', '/app/observability-log-explorer'); + cy.url().should('include', '/app/observability-logs-explorer'); cy.get('button').contains('All logs').should('exist'); }); }); @@ -696,7 +696,7 @@ describe('[Logs onboarding] System logs', () => { cy.wait('@systemIntegrationInstall'); cy.getByTestSubj('obltOnboardingExploreLogs').should('exist').click(); - cy.url().should('include', '/app/observability-log-explorer'); + cy.url().should('include', '/app/observability-logs-explorer'); cy.get('button').contains('[System] syslog').should('exist'); }); }); diff --git a/x-pack/plugins/observability_solution/logs_explorer/common/constants.ts b/x-pack/plugins/observability_solution/logs_explorer/common/constants.ts index 62cd9af1d05c3..114ba985553a7 100644 --- a/x-pack/plugins/observability_solution/logs_explorer/common/constants.ts +++ b/x-pack/plugins/observability_solution/logs_explorer/common/constants.ts @@ -5,7 +5,7 @@ * 2.0. */ -export const LOG_EXPLORER_PROFILE_ID = 'log-explorer'; +export const LOG_EXPLORER_PROFILE_ID = 'logs-explorer'; // Fields constants export const TIMESTAMP_FIELD = '@timestamp'; diff --git a/x-pack/plugins/observability_solution/observability_logs_explorer/README.md b/x-pack/plugins/observability_solution/observability_logs_explorer/README.md index ac50e66ddbdb8..56328aa2cc08d 100644 --- a/x-pack/plugins/observability_solution/observability_logs_explorer/README.md +++ b/x-pack/plugins/observability_solution/observability_logs_explorer/README.md @@ -8,17 +8,17 @@ This plugin provides an app based on the `LogExplorer` component from the `logs_ #### FTR Server ``` -yarn test:ftr:server --config ./x-pack/test/functional/apps/observability_log_explorer/config.ts +yarn test:ftr:server --config ./x-pack/test/functional/apps/observability_logs_explorer/config.ts ``` #### FTR Runner ``` -yarn test:ftr:runner --config ./x-pack/test/functional/apps/observability_log_explorer/config.ts --include ./x-pack/test/functional/apps/observability_log_explorer/index.ts +yarn test:ftr:runner --config ./x-pack/test/functional/apps/observability_logs_explorer/config.ts --include ./x-pack/test/functional/apps/observability_logs_explorer/index.ts ``` #### Running Individual Tests ``` -yarn test:ftr:runner --config ./x-pack/test/functional/apps/observability_log_explorer/config.ts --include ./x-pack/test/functional/apps/observability_log_explorer/$1 +yarn test:ftr:runner --config ./x-pack/test/functional/apps/observability_logs_explorer/config.ts --include ./x-pack/test/functional/apps/observability_logs_explorer/$1 ``` ### Serverless @@ -30,11 +30,11 @@ yarn test:ftr:server --config ./x-pack/test_serverless/functional/test_suites/ob #### Runner ``` -yarn test:ftr:runner --config ./x-pack/test_serverless/functional/test_suites/observability/config.ts --include ./x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/index.ts +yarn test:ftr:runner --config ./x-pack/test_serverless/functional/test_suites/observability/config.ts --include ./x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/index.ts ``` #### Running Individual Tests ``` -yarn test:ftr:runner --config ./x-pack/test_serverless/functional/test_suites/observability/config.ts --include ./x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/$1 +yarn test:ftr:runner --config ./x-pack/test_serverless/functional/test_suites/observability/config.ts --include ./x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/$1 ``` ## Checktypes diff --git a/x-pack/plugins/observability_solution/observability_logs_explorer/common/index.ts b/x-pack/plugins/observability_solution/observability_logs_explorer/common/index.ts index f94c83117e7e8..5ef2ca71e5ce1 100644 --- a/x-pack/plugins/observability_solution/observability_logs_explorer/common/index.ts +++ b/x-pack/plugins/observability_solution/observability_logs_explorer/common/index.ts @@ -10,5 +10,5 @@ export { SingleDatasetLocatorDefinition, AllDatasetsLocatorDefinition, } from './locators'; -export { OBSERVABILITY_LOG_EXPLORER_URL_STATE_KEY, urlSchemaV1 } from './url_schema'; +export { OBSERVABILITY_LOGS_EXPLORER_URL_STATE_KEY, urlSchemaV1 } from './url_schema'; export { deepCompactObject } from './utils/deep_compact_object'; diff --git a/x-pack/plugins/observability_solution/observability_logs_explorer/common/locators/locators.test.ts b/x-pack/plugins/observability_solution/observability_logs_explorer/common/locators/locators.test.ts index ff12691e8c2fd..0c4615ad110e0 100644 --- a/x-pack/plugins/observability_solution/observability_logs_explorer/common/locators/locators.test.ts +++ b/x-pack/plugins/observability_solution/observability_logs_explorer/common/locators/locators.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { OBSERVABILITY_LOG_EXPLORER_APP_ID } from '@kbn/deeplinks-observability'; +import { OBSERVABILITY_LOGS_EXPLORER_APP_ID } from '@kbn/deeplinks-observability'; import { AllDatasetsLocatorParams, SingleDatasetLocatorParams, @@ -36,7 +36,7 @@ describe('Observability Logs Explorer Locators', () => { const location = await allDatasetsLocator.getLocation({}); expect(location).toMatchObject({ - app: OBSERVABILITY_LOG_EXPLORER_APP_ID, + app: OBSERVABILITY_LOGS_EXPLORER_APP_ID, path: '/?pageState=(datasetSelection:(selectionType:all),v:1)', state: {}, }); @@ -51,7 +51,7 @@ describe('Observability Logs Explorer Locators', () => { const location = await allDatasetsLocator.getLocation(params); expect(location).toMatchObject({ - app: OBSERVABILITY_LOG_EXPLORER_APP_ID, + app: OBSERVABILITY_LOGS_EXPLORER_APP_ID, path: '/?pageState=(datasetSelection:(selectionType:all),time:(from:now-30m,to:now),v:1)', state: {}, }); @@ -68,7 +68,7 @@ describe('Observability Logs Explorer Locators', () => { const location = await allDatasetsLocator.getLocation(params); expect(location).toMatchObject({ - app: OBSERVABILITY_LOG_EXPLORER_APP_ID, + app: OBSERVABILITY_LOGS_EXPLORER_APP_ID, path: '/?pageState=(datasetSelection:(selectionType:all),query:(language:kuery,query:foo),v:1)', state: {}, }); @@ -86,7 +86,7 @@ describe('Observability Logs Explorer Locators', () => { const location = await allDatasetsLocator.getLocation(params); expect(location).toMatchObject({ - app: OBSERVABILITY_LOG_EXPLORER_APP_ID, + app: OBSERVABILITY_LOGS_EXPLORER_APP_ID, path: '/?pageState=(datasetSelection:(selectionType:all),refreshInterval:(pause:!f,value:666),v:1)', state: {}, }); @@ -101,7 +101,7 @@ describe('Observability Logs Explorer Locators', () => { const location = await allDatasetsLocator.getLocation(params); expect(location).toMatchObject({ - app: OBSERVABILITY_LOG_EXPLORER_APP_ID, + app: OBSERVABILITY_LOGS_EXPLORER_APP_ID, path: `/?pageState=(columns:!((field:_source)),datasetSelection:(selectionType:all),v:1)`, state: {}, }); @@ -147,7 +147,7 @@ describe('Observability Logs Explorer Locators', () => { }); expect(location).toMatchObject({ - app: OBSERVABILITY_LOG_EXPLORER_APP_ID, + app: OBSERVABILITY_LOGS_EXPLORER_APP_ID, path: `/?pageState=(datasetSelection:(selection:(dataset:(name:'logs-test-*-*',title:test),name:Test),selectionType:unresolved),v:1)`, state: {}, }); @@ -164,7 +164,7 @@ describe('Observability Logs Explorer Locators', () => { const location = await singleDatasetLocator.getLocation(params); expect(location).toMatchObject({ - app: OBSERVABILITY_LOG_EXPLORER_APP_ID, + app: OBSERVABILITY_LOGS_EXPLORER_APP_ID, path: `/?pageState=(datasetSelection:(selection:(dataset:(name:'logs-test-*-*',title:test),name:Test),selectionType:unresolved),time:(from:now-30m,to:now),v:1)`, state: {}, }); @@ -184,7 +184,7 @@ describe('Observability Logs Explorer Locators', () => { const location = await singleDatasetLocator.getLocation(params); expect(location).toMatchObject({ - app: OBSERVABILITY_LOG_EXPLORER_APP_ID, + app: OBSERVABILITY_LOGS_EXPLORER_APP_ID, path: `/?pageState=(datasetSelection:(selection:(dataset:(name:'logs-test-*-*',title:test),name:Test),selectionType:unresolved),query:(language:kuery,query:foo),v:1)`, state: {}, }); @@ -204,7 +204,7 @@ describe('Observability Logs Explorer Locators', () => { const location = await singleDatasetLocator.getLocation(params); expect(location).toMatchObject({ - app: OBSERVABILITY_LOG_EXPLORER_APP_ID, + app: OBSERVABILITY_LOGS_EXPLORER_APP_ID, path: `/?pageState=(datasetSelection:(selection:(dataset:(name:'logs-test-*-*',title:test),name:Test),selectionType:unresolved),refreshInterval:(pause:!f,value:666),v:1)`, state: {}, }); @@ -221,7 +221,7 @@ describe('Observability Logs Explorer Locators', () => { const location = await singleDatasetLocator.getLocation(params); expect(location).toMatchObject({ - app: OBSERVABILITY_LOG_EXPLORER_APP_ID, + app: OBSERVABILITY_LOGS_EXPLORER_APP_ID, path: `/?pageState=(columns:!((field:_source)),datasetSelection:(selection:(dataset:(name:'logs-test-*-*',title:test),name:Test),selectionType:unresolved),v:1)`, state: {}, }); diff --git a/x-pack/plugins/observability_solution/observability_logs_explorer/common/locators/utils/construct_locator_path.ts b/x-pack/plugins/observability_solution/observability_logs_explorer/common/locators/utils/construct_locator_path.ts index 664251374d88c..d2464184107f2 100644 --- a/x-pack/plugins/observability_solution/observability_logs_explorer/common/locators/utils/construct_locator_path.ts +++ b/x-pack/plugins/observability_solution/observability_logs_explorer/common/locators/utils/construct_locator_path.ts @@ -16,8 +16,8 @@ import { availableControlsPanels, DatasetSelectionPlain, } from '@kbn/logs-explorer-plugin/common'; -import { OBSERVABILITY_LOG_EXPLORER_APP_ID } from '@kbn/deeplinks-observability'; -import { OBSERVABILITY_LOG_EXPLORER_URL_STATE_KEY, urlSchemaV1 } from '../../url_schema'; +import { OBSERVABILITY_LOGS_EXPLORER_APP_ID } from '@kbn/deeplinks-observability'; +import { OBSERVABILITY_LOGS_EXPLORER_URL_STATE_KEY, urlSchemaV1 } from '../../url_schema'; import { deepCompactObject } from '../../utils/deep_compact_object'; type ControlsPageState = NonNullable; @@ -49,14 +49,14 @@ export const constructLocatorPath = async (params: LocatorPathConstructionParams ); const path = setStateToKbnUrl( - OBSERVABILITY_LOG_EXPLORER_URL_STATE_KEY, + OBSERVABILITY_LOGS_EXPLORER_URL_STATE_KEY, pageState, { useHash, storeInHashQuery: false }, '/' ); return { - app: OBSERVABILITY_LOG_EXPLORER_APP_ID, + app: OBSERVABILITY_LOGS_EXPLORER_APP_ID, path, state: { ...(origin ? { origin } : {}), diff --git a/x-pack/plugins/observability_solution/observability_logs_explorer/common/url_schema/common.ts b/x-pack/plugins/observability_solution/observability_logs_explorer/common/url_schema/common.ts index fa3b3f72383d1..22b00ded2e180 100644 --- a/x-pack/plugins/observability_solution/observability_logs_explorer/common/url_schema/common.ts +++ b/x-pack/plugins/observability_solution/observability_logs_explorer/common/url_schema/common.ts @@ -5,4 +5,4 @@ * 2.0. */ -export const OBSERVABILITY_LOG_EXPLORER_URL_STATE_KEY = 'pageState'; +export const OBSERVABILITY_LOGS_EXPLORER_URL_STATE_KEY = 'pageState'; diff --git a/x-pack/plugins/observability_solution/observability_logs_explorer/common/url_schema/index.ts b/x-pack/plugins/observability_solution/observability_logs_explorer/common/url_schema/index.ts index d8f53e47b6058..f0873d9949426 100644 --- a/x-pack/plugins/observability_solution/observability_logs_explorer/common/url_schema/index.ts +++ b/x-pack/plugins/observability_solution/observability_logs_explorer/common/url_schema/index.ts @@ -5,5 +5,5 @@ * 2.0. */ -export { OBSERVABILITY_LOG_EXPLORER_URL_STATE_KEY } from './common'; +export { OBSERVABILITY_LOGS_EXPLORER_URL_STATE_KEY } from './common'; export * as urlSchemaV1 from './url_schema_v1'; diff --git a/x-pack/plugins/observability_solution/observability_logs_explorer/public/applications/redirect_to_observability_logs_explorer.tsx b/x-pack/plugins/observability_solution/observability_logs_explorer/public/applications/redirect_to_observability_logs_explorer.tsx new file mode 100644 index 0000000000000..222b68fa8544e --- /dev/null +++ b/x-pack/plugins/observability_solution/observability_logs_explorer/public/applications/redirect_to_observability_logs_explorer.tsx @@ -0,0 +1,36 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import ReactDOM from 'react-dom'; +import { useLocation } from 'react-router-dom'; +import { Router } from '@kbn/shared-ux-router'; +import { OBSERVABILITY_LOGS_EXPLORER_APP_ID } from '@kbn/deeplinks-observability'; +import { AppMountParameters, CoreStart } from '@kbn/core/public'; + +export const renderObservabilityLogExplorerRedirect = ( + core: CoreStart, + appParams: AppMountParameters +) => { + ReactDOM.render( + + + , + appParams.element + ); + + return () => { + ReactDOM.unmountComponentAtNode(appParams.element); + }; +}; + +export const ObservabilityLogExplorerRedirect = ({ core }: { core: CoreStart }) => { + const location = useLocation(); + const path = `${location.pathname}${location.search}`; + core.application.navigateToApp(OBSERVABILITY_LOGS_EXPLORER_APP_ID, { replace: true, path }); + return <>; +}; diff --git a/x-pack/plugins/observability_solution/observability_logs_explorer/public/plugin.ts b/x-pack/plugins/observability_solution/observability_logs_explorer/public/plugin.ts index 6af6484e883b5..4c00dd88525d6 100644 --- a/x-pack/plugins/observability_solution/observability_logs_explorer/public/plugin.ts +++ b/x-pack/plugins/observability_solution/observability_logs_explorer/public/plugin.ts @@ -6,6 +6,7 @@ */ import { + AppMountParameters, AppNavLinkStatus, CoreSetup, CoreStart, @@ -13,7 +14,7 @@ import { Plugin, PluginInitializerContext, } from '@kbn/core/public'; -import { OBSERVABILITY_LOG_EXPLORER_APP_ID } from '@kbn/deeplinks-observability'; +import { OBSERVABILITY_LOGS_EXPLORER_APP_ID } from '@kbn/deeplinks-observability'; import { AllDatasetsLocatorDefinition, ObservabilityLogExplorerLocators, @@ -28,7 +29,6 @@ import type { ObservabilityLogExplorerSetupDeps, ObservabilityLogExplorerStartDeps, } from './types'; - export class ObservabilityLogExplorerPlugin implements Plugin { @@ -47,7 +47,7 @@ export class ObservabilityLogExplorerPlugin const useHash = core.uiSettings.get('state:storeInSessionStorage'); core.application.register({ - id: OBSERVABILITY_LOG_EXPLORER_APP_ID, + id: OBSERVABILITY_LOGS_EXPLORER_APP_ID, title: logExplorerAppTitle, category: DEFAULT_APP_CATEGORIES.observability, euiIconType: 'logoLogging', @@ -71,6 +71,21 @@ export class ObservabilityLogExplorerPlugin }, }); + // App used solely to redirect from "/app/observability-log-explorer" to "/app/observability-logs-explorer" + core.application.register({ + id: 'observability-log-explorer', + title: logExplorerAppTitle, + navLinkStatus: AppNavLinkStatus.hidden, + mount: async (appMountParams: AppMountParameters) => { + const [coreStart] = await core.getStartServices(); + const { renderObservabilityLogExplorerRedirect } = await import( + './applications/redirect_to_observability_logs_explorer' + ); + + return renderObservabilityLogExplorerRedirect(coreStart, appMountParams); + }, + }); + if (serverless) { discover.showLogExplorerTabs(); } diff --git a/x-pack/plugins/observability_solution/observability_logs_explorer/public/state_machines/observability_log_explorer/src/url_state_storage_service.ts b/x-pack/plugins/observability_solution/observability_logs_explorer/public/state_machines/observability_log_explorer/src/url_state_storage_service.ts index 2eef22e0e5269..cdb2ec2980439 100644 --- a/x-pack/plugins/observability_solution/observability_logs_explorer/public/state_machines/observability_log_explorer/src/url_state_storage_service.ts +++ b/x-pack/plugins/observability_solution/observability_logs_explorer/public/state_machines/observability_log_explorer/src/url_state_storage_service.ts @@ -11,7 +11,7 @@ import { IKbnUrlStateStorage, withNotifyOnErrors } from '@kbn/kibana-utils-plugi import * as Either from 'fp-ts/lib/Either'; import * as rt from 'io-ts'; import { InvokeCreator } from 'xstate'; -import { OBSERVABILITY_LOG_EXPLORER_URL_STATE_KEY } from '../../../../common'; +import { OBSERVABILITY_LOGS_EXPLORER_URL_STATE_KEY } from '../../../../common'; import type { ObservabilityLogExplorerContext, ObservabilityLogExplorerEvent } from './types'; import * as urlSchemaV1 from './url_schema_v1'; @@ -32,7 +32,7 @@ export const updateUrlFromLogExplorerState = context.logExplorerState ); - urlStateStorageContainer.set(OBSERVABILITY_LOG_EXPLORER_URL_STATE_KEY, encodedUrlStateValues, { + urlStateStorageContainer.set(OBSERVABILITY_LOGS_EXPLORER_URL_STATE_KEY, encodedUrlStateValues, { replace: true, }); }; @@ -48,7 +48,7 @@ export const initializeFromUrl = (_context, _event) => (send) => { const urlStateValues = - urlStateStorageContainer.get(OBSERVABILITY_LOG_EXPLORER_URL_STATE_KEY) ?? undefined; + urlStateStorageContainer.get(OBSERVABILITY_LOGS_EXPLORER_URL_STATE_KEY) ?? undefined; // in the future we'll have to more schema versions to the union const stateValuesE = rt diff --git a/x-pack/plugins/observability_solution/observability_logs_explorer/public/utils/breadcrumbs.tsx b/x-pack/plugins/observability_solution/observability_logs_explorer/public/utils/breadcrumbs.tsx index 9de71eb8069d7..184b99bb87368 100644 --- a/x-pack/plugins/observability_solution/observability_logs_explorer/public/utils/breadcrumbs.tsx +++ b/x-pack/plugins/observability_solution/observability_logs_explorer/public/utils/breadcrumbs.tsx @@ -9,7 +9,7 @@ import { EuiBreadcrumb } from '@elastic/eui'; import type { ChromeStart } from '@kbn/core-chrome-browser'; import { LOGS_APP_ID, - OBSERVABILITY_LOG_EXPLORER_APP_ID, + OBSERVABILITY_LOGS_EXPLORER_APP_ID, OBSERVABILITY_OVERVIEW_APP_ID, } from '@kbn/deeplinks-observability'; import { useLinkProps } from '@kbn/observability-shared-plugin/public'; @@ -28,7 +28,7 @@ export const useBreadcrumbs = ( ) => { const observabilityLinkProps = useLinkProps({ app: OBSERVABILITY_OVERVIEW_APP_ID }); const logsLinkProps = useLinkProps({ app: LOGS_APP_ID }); - const logExplorerLinkProps = useLinkProps({ app: OBSERVABILITY_LOG_EXPLORER_APP_ID }); + const logExplorerLinkProps = useLinkProps({ app: OBSERVABILITY_LOGS_EXPLORER_APP_ID }); useEffect(() => { setBreadcrumbs( diff --git a/x-pack/plugins/serverless_observability/public/navigation_tree.ts b/x-pack/plugins/serverless_observability/public/navigation_tree.ts index 6494af34c0ed9..dd36baefdb103 100644 --- a/x-pack/plugins/serverless_observability/public/navigation_tree.ts +++ b/x-pack/plugins/serverless_observability/public/navigation_tree.ts @@ -24,7 +24,7 @@ export const navigationTree: NavigationTreeDefinition = { title: i18n.translate('xpack.serverlessObservability.nav.discover', { defaultMessage: 'Discover', }), - link: 'observability-log-explorer', + link: 'observability-logs-explorer', // avoid duplicate "Discover" breadcrumbs breadcrumbStatus: 'hidden', renderAs: 'item', @@ -33,7 +33,7 @@ export const navigationTree: NavigationTreeDefinition = { link: 'discover', children: [ { - link: 'observability-log-explorer', + link: 'observability-logs-explorer', }, ], }, diff --git a/x-pack/test/functional/apps/observability_log_explorer/app.ts b/x-pack/test/functional/apps/observability_logs_explorer/app.ts similarity index 95% rename from x-pack/test/functional/apps/observability_log_explorer/app.ts rename to x-pack/test/functional/apps/observability_logs_explorer/app.ts index 508d9720fa025..b7c58238d737a 100644 --- a/x-pack/test/functional/apps/observability_log_explorer/app.ts +++ b/x-pack/test/functional/apps/observability_logs_explorer/app.ts @@ -24,8 +24,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('is shown in the observability side navigation', async () => { - await PageObjects.observabilityLogsExplorer.navigateTo(); - await testSubjects.existOrFail('observability-nav-observability-log-explorer-explorer'); + await PageObjects.observabilityLogExplorer.navigateTo(); + await testSubjects.existOrFail('observability-nav-observability-logs-explorer-explorer'); }); it('should load logs', async () => { diff --git a/x-pack/test/functional/apps/observability_log_explorer/columns_selection.ts b/x-pack/test/functional/apps/observability_logs_explorer/columns_selection.ts similarity index 100% rename from x-pack/test/functional/apps/observability_log_explorer/columns_selection.ts rename to x-pack/test/functional/apps/observability_logs_explorer/columns_selection.ts diff --git a/x-pack/test/functional/apps/observability_log_explorer/config.ts b/x-pack/test/functional/apps/observability_logs_explorer/config.ts similarity index 100% rename from x-pack/test/functional/apps/observability_log_explorer/config.ts rename to x-pack/test/functional/apps/observability_logs_explorer/config.ts diff --git a/x-pack/test/functional/apps/observability_log_explorer/dataset_selection_state.ts b/x-pack/test/functional/apps/observability_logs_explorer/dataset_selection_state.ts similarity index 100% rename from x-pack/test/functional/apps/observability_log_explorer/dataset_selection_state.ts rename to x-pack/test/functional/apps/observability_logs_explorer/dataset_selection_state.ts diff --git a/x-pack/test/functional/apps/observability_log_explorer/dataset_selector.ts b/x-pack/test/functional/apps/observability_logs_explorer/dataset_selector.ts similarity index 99% rename from x-pack/test/functional/apps/observability_log_explorer/dataset_selector.ts rename to x-pack/test/functional/apps/observability_logs_explorer/dataset_selector.ts index 918ce47f871f2..9e2dcd1d7c41c 100644 --- a/x-pack/test/functional/apps/observability_log_explorer/dataset_selector.ts +++ b/x-pack/test/functional/apps/observability_logs_explorer/dataset_selector.ts @@ -184,7 +184,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { before(async () => { await esArchiver.load( - 'x-pack/test/functional/es_archives/observability_log_explorer/data_streams' + 'x-pack/test/functional/es_archives/observability_logs_explorer/data_streams' ); cleanupIntegrationsSetup = await PageObjects.observabilityLogsExplorer.setupInitialIntegrations(); @@ -192,7 +192,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { after(async () => { await esArchiver.unload( - 'x-pack/test/functional/es_archives/observability_log_explorer/data_streams' + 'x-pack/test/functional/es_archives/observability_logs_explorer/data_streams' ); await cleanupIntegrationsSetup(); }); diff --git a/x-pack/test/functional/apps/observability_log_explorer/filter_controls.ts b/x-pack/test/functional/apps/observability_logs_explorer/filter_controls.ts similarity index 100% rename from x-pack/test/functional/apps/observability_log_explorer/filter_controls.ts rename to x-pack/test/functional/apps/observability_logs_explorer/filter_controls.ts diff --git a/x-pack/test/functional/apps/observability_log_explorer/flyout.ts b/x-pack/test/functional/apps/observability_logs_explorer/flyout.ts similarity index 100% rename from x-pack/test/functional/apps/observability_log_explorer/flyout.ts rename to x-pack/test/functional/apps/observability_logs_explorer/flyout.ts diff --git a/x-pack/test/functional/apps/observability_log_explorer/flyout_highlights.ts b/x-pack/test/functional/apps/observability_logs_explorer/flyout_highlights.ts similarity index 100% rename from x-pack/test/functional/apps/observability_log_explorer/flyout_highlights.ts rename to x-pack/test/functional/apps/observability_logs_explorer/flyout_highlights.ts diff --git a/x-pack/test/functional/apps/observability_log_explorer/header_menu.ts b/x-pack/test/functional/apps/observability_logs_explorer/header_menu.ts similarity index 95% rename from x-pack/test/functional/apps/observability_log_explorer/header_menu.ts rename to x-pack/test/functional/apps/observability_logs_explorer/header_menu.ts index b24f33688e555..9bc4e090fb6cc 100644 --- a/x-pack/test/functional/apps/observability_log_explorer/header_menu.ts +++ b/x-pack/test/functional/apps/observability_logs_explorer/header_menu.ts @@ -19,7 +19,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { before(async () => { await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover'); await esArchiver.load( - 'x-pack/test/functional/es_archives/observability_log_explorer/data_streams' + 'x-pack/test/functional/es_archives/observability_logs_explorer/data_streams' ); await PageObjects.observabilityLogsExplorer.navigateTo(); }); @@ -27,7 +27,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { after(async () => { await kibanaServer.importExport.unload('test/functional/fixtures/kbn_archiver/discover'); await esArchiver.unload( - 'x-pack/test/functional/es_archives/observability_log_explorer/data_streams' + 'x-pack/test/functional/es_archives/observability_logs_explorer/data_streams' ); }); diff --git a/x-pack/test/functional/apps/observability_log_explorer/index.ts b/x-pack/test/functional/apps/observability_logs_explorer/index.ts similarity index 100% rename from x-pack/test/functional/apps/observability_log_explorer/index.ts rename to x-pack/test/functional/apps/observability_logs_explorer/index.ts diff --git a/x-pack/test/functional/config.base.js b/x-pack/test/functional/config.base.js index c88c4b81d7675..1bf939c537b7c 100644 --- a/x-pack/test/functional/config.base.js +++ b/x-pack/test/functional/config.base.js @@ -171,7 +171,7 @@ export default async function ({ readConfigFile }) { pathname: '/app/observability', }, observabilityLogsExplorer: { - pathname: '/app/observability-log-explorer', + pathname: '/app/observability-logs-explorer', }, connectors: { pathname: '/app/management/insightsAndAlerting/triggersActionsConnectors/', diff --git a/x-pack/test/functional/es_archives/observability_log_explorer/data_streams/data.json.gz b/x-pack/test/functional/es_archives/observability_logs_explorer/data_streams/data.json.gz similarity index 100% rename from x-pack/test/functional/es_archives/observability_log_explorer/data_streams/data.json.gz rename to x-pack/test/functional/es_archives/observability_logs_explorer/data_streams/data.json.gz diff --git a/x-pack/test/functional/es_archives/observability_log_explorer/data_streams/mappings.json b/x-pack/test/functional/es_archives/observability_logs_explorer/data_streams/mappings.json similarity index 100% rename from x-pack/test/functional/es_archives/observability_log_explorer/data_streams/mappings.json rename to x-pack/test/functional/es_archives/observability_logs_explorer/data_streams/mappings.json diff --git a/x-pack/test/functional/page_objects/observability_log_explorer.ts b/x-pack/test/functional/page_objects/observability_log_explorer.ts index 37db7822d1036..3f63b146756e6 100644 --- a/x-pack/test/functional/page_objects/observability_log_explorer.ts +++ b/x-pack/test/functional/page_objects/observability_log_explorer.ts @@ -6,7 +6,7 @@ */ import expect from '@kbn/expect'; import { - OBSERVABILITY_LOG_EXPLORER_URL_STATE_KEY, + OBSERVABILITY_LOGS_EXPLORER_URL_STATE_KEY, urlSchemaV1, } from '@kbn/observability-logs-explorer-plugin/common'; import rison from '@kbn/rison'; @@ -215,7 +215,7 @@ export function ObservabilityLogsExplorerPageObject({ pageState?: urlSchemaV1.UrlSchema; } = {}) { const queryStringParams = querystring.stringify({ - [OBSERVABILITY_LOG_EXPLORER_URL_STATE_KEY]: rison.encode( + [OBSERVABILITY_LOGS_EXPLORER_URL_STATE_KEY]: rison.encode( urlSchemaV1.urlSchemaRT.encode({ ...defaultPageState, ...pageState, @@ -241,7 +241,7 @@ export function ObservabilityLogsExplorerPageObject({ pageState?: {}; } = {}) { const queryStringParams = querystring.stringify({ - [OBSERVABILITY_LOG_EXPLORER_URL_STATE_KEY]: rison.encode({ + [OBSERVABILITY_LOGS_EXPLORER_URL_STATE_KEY]: rison.encode({ ...uncheckedPageState, }), }); diff --git a/x-pack/test_serverless/functional/test_suites/observability/cypress/e2e/navigation.cy.ts b/x-pack/test_serverless/functional/test_suites/observability/cypress/e2e/navigation.cy.ts index 8453042cc7161..88190fa496156 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/cypress/e2e/navigation.cy.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/cypress/e2e/navigation.cy.ts @@ -27,7 +27,7 @@ describe.skip('Serverless', () => { cy.loginAsElasticUser(); cy.contains('Logs Explorer').click(); - cy.url().should('include', '/app/observability-log-explorer'); + cy.url().should('include', '/app/observability-logs-explorer'); cy.contains('Dashboards').click(); cy.url().should('include', '/app/dashboards'); diff --git a/x-pack/test_serverless/functional/test_suites/observability/index.ts b/x-pack/test_serverless/functional/test_suites/observability/index.ts index 992ace677b01c..c8e82d6017636 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/index.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/index.ts @@ -11,7 +11,7 @@ export default function ({ loadTestFile }: FtrProviderContext) { describe('serverless observability UI', function () { loadTestFile(require.resolve('./landing_page')); loadTestFile(require.resolve('./navigation')); - loadTestFile(require.resolve('./observability_log_explorer')); + loadTestFile(require.resolve('./observability_logs_explorer')); loadTestFile(require.resolve('./rules/rules_list')); loadTestFile(require.resolve('./cases')); loadTestFile(require.resolve('./advanced_settings')); diff --git a/x-pack/test_serverless/functional/test_suites/observability/navigation.ts b/x-pack/test_serverless/functional/test_suites/observability/navigation.ts index f899d6760db02..302a786286ae5 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/navigation.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/navigation.ts @@ -42,14 +42,14 @@ export default function ({ getPageObject, getService }: FtrProviderContext) { await svlCommonNavigation.sidenav.expectSectionClosed('project_settings_project_nav'); // navigate to the logs explorer tab by default - await svlCommonNavigation.sidenav.clickLink({ deepLinkId: 'observability-log-explorer' }); + await svlCommonNavigation.sidenav.clickLink({ deepLinkId: 'observability-logs-explorer' }); await svlCommonNavigation.sidenav.expectLinkActive({ - deepLinkId: 'observability-log-explorer', + deepLinkId: 'observability-logs-explorer', }); await svlCommonNavigation.breadcrumbs.expectBreadcrumbExists({ - deepLinkId: 'observability-log-explorer', + deepLinkId: 'observability-logs-explorer', }); - expect(await browser.getCurrentUrl()).contain('/app/observability-log-explorer'); + expect(await browser.getCurrentUrl()).contain('/app/observability-logs-explorer'); // check the aiops subsection await svlCommonNavigation.sidenav.openSection('observability_project_nav.aiops'); // open ai ops subsection diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/app.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/app.ts similarity index 100% rename from x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/app.ts rename to x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/app.ts diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/columns_selection.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/columns_selection.ts similarity index 100% rename from x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/columns_selection.ts rename to x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/columns_selection.ts diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/dataset_selection_state.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/dataset_selection_state.ts similarity index 100% rename from x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/dataset_selection_state.ts rename to x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/dataset_selection_state.ts diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/dataset_selector.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/dataset_selector.ts similarity index 99% rename from x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/dataset_selector.ts rename to x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/dataset_selector.ts index e0d1452088ff3..a0b5a5d0bc8cd 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/dataset_selector.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/dataset_selector.ts @@ -185,7 +185,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { before(async () => { await esArchiver.load( - 'x-pack/test/functional/es_archives/observability_log_explorer/data_streams' + 'x-pack/test/functional/es_archives/observability_logs_explorer/data_streams' ); cleanupIntegrationsSetup = await PageObjects.observabilityLogsExplorer.setupInitialIntegrations(); @@ -193,7 +193,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { after(async () => { await esArchiver.unload( - 'x-pack/test/functional/es_archives/observability_log_explorer/data_streams' + 'x-pack/test/functional/es_archives/observability_logs_explorer/data_streams' ); await cleanupIntegrationsSetup(); }); diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/filter_controls.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/filter_controls.ts similarity index 100% rename from x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/filter_controls.ts rename to x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/filter_controls.ts diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/flyout.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/flyout.ts similarity index 100% rename from x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/flyout.ts rename to x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/flyout.ts diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/flyout_highlights.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/flyout_highlights.ts similarity index 100% rename from x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/flyout_highlights.ts rename to x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/flyout_highlights.ts diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/header_menu.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/header_menu.ts similarity index 96% rename from x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/header_menu.ts rename to x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/header_menu.ts index d66f7b36f7632..a4768c4415e4b 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/header_menu.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/header_menu.ts @@ -27,7 +27,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { before(async () => { await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover'); await esArchiver.load( - 'x-pack/test/functional/es_archives/observability_log_explorer/data_streams' + 'x-pack/test/functional/es_archives/observability_logs_explorer/data_streams' ); await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional'); await PageObjects.svlCommonPage.login(); @@ -39,7 +39,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.svlCommonPage.forceLogout(); await kibanaServer.importExport.unload('test/functional/fixtures/kbn_archiver/discover'); await esArchiver.unload( - 'x-pack/test/functional/es_archives/observability_log_explorer/data_streams' + 'x-pack/test/functional/es_archives/observability_logs_explorer/data_streams' ); await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional'); }); @@ -140,7 +140,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { deepLinkId: 'discover', }); await PageObjects.svlCommonNavigation.breadcrumbs.expectBreadcrumbMissing({ - deepLinkId: 'observability-log-explorer', + deepLinkId: 'observability-logs-explorer', }); expect(await browser.getCurrentUrl()).contain('/app/discover'); @@ -172,9 +172,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { deepLinkId: 'discover', }); await PageObjects.svlCommonNavigation.breadcrumbs.expectBreadcrumbExists({ - deepLinkId: 'observability-log-explorer', + deepLinkId: 'observability-logs-explorer', }); - expect(await browser.getCurrentUrl()).contain('/app/observability-log-explorer'); + expect(await browser.getCurrentUrl()).contain('/app/observability-logs-explorer'); }); }); diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/index.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/index.ts similarity index 100% rename from x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/index.ts rename to x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer/index.ts From dc403940095cebfb97fe242d76874a9058e4e64e Mon Sep 17 00:00:00 2001 From: gbamparop Date: Mon, 29 Jan 2024 18:02:49 +0000 Subject: [PATCH 3/6] Fix page object call --- x-pack/test/functional/apps/observability_logs_explorer/app.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/test/functional/apps/observability_logs_explorer/app.ts b/x-pack/test/functional/apps/observability_logs_explorer/app.ts index b7c58238d737a..87da77752e58d 100644 --- a/x-pack/test/functional/apps/observability_logs_explorer/app.ts +++ b/x-pack/test/functional/apps/observability_logs_explorer/app.ts @@ -24,7 +24,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('is shown in the observability side navigation', async () => { - await PageObjects.observabilityLogExplorer.navigateTo(); + await PageObjects.observabilityLogsExplorer.navigateTo(); await testSubjects.existOrFail('observability-nav-observability-logs-explorer-explorer'); }); From 257ddbb2e39eed5058f86bd475a41159824b9a3a Mon Sep 17 00:00:00 2001 From: gbamparop Date: Tue, 30 Jan 2024 11:36:07 +0000 Subject: [PATCH 4/6] Update logs explorer url in serverles test config --- x-pack/test_serverless/functional/config.base.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/test_serverless/functional/config.base.ts b/x-pack/test_serverless/functional/config.base.ts index 9d7ffed8488c7..7827714dea55d 100644 --- a/x-pack/test_serverless/functional/config.base.ts +++ b/x-pack/test_serverless/functional/config.base.ts @@ -61,7 +61,7 @@ export function createTestConfig(options: CreateTestConfigOptions) { pathname: '/app/observability', }, observabilityLogsExplorer: { - pathname: '/app/observability-log-explorer', + pathname: '/app/observability-logs-explorer', }, management: { pathname: '/app/management', From d09aa57afa6b9e312f3274a8a49930a783c414b9 Mon Sep 17 00:00:00 2001 From: gbamparop Date: Tue, 30 Jan 2024 11:36:59 +0000 Subject: [PATCH 5/6] Add observability-log-explorer app in the usage collection map --- .../server/collectors/application_usage/schema.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/kibana_usage_collection/server/collectors/application_usage/schema.ts b/src/plugins/kibana_usage_collection/server/collectors/application_usage/schema.ts index 148d8ae35b406..97c2c74814db1 100644 --- a/src/plugins/kibana_usage_collection/server/collectors/application_usage/schema.ts +++ b/src/plugins/kibana_usage_collection/server/collectors/application_usage/schema.ts @@ -154,6 +154,7 @@ export const applicationUsageSchema = { maps: commonSchema, ml: commonSchema, monitoring: commonSchema, + 'observability-log-explorer': commonSchema, 'observability-logs-explorer': commonSchema, 'observability-overview': commonSchema, observabilityOnboarding: commonSchema, From 18a0fc1538d4c04a90c07fa21a38373d090f6d68 Mon Sep 17 00:00:00 2001 From: gbamparop Date: Tue, 30 Jan 2024 14:06:10 +0000 Subject: [PATCH 6/6] Add new app to oss plugins --- src/plugins/telemetry/schema/oss_plugins.json | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) diff --git a/src/plugins/telemetry/schema/oss_plugins.json b/src/plugins/telemetry/schema/oss_plugins.json index 4d23315c369d0..7686be9584e4e 100644 --- a/src/plugins/telemetry/schema/oss_plugins.json +++ b/src/plugins/telemetry/schema/oss_plugins.json @@ -4587,6 +4587,137 @@ } } }, + "observability-log-explorer": { + "properties": { + "appId": { + "type": "keyword", + "_meta": { + "description": "The application being tracked" + } + }, + "viewId": { + "type": "keyword", + "_meta": { + "description": "Always `main`" + } + }, + "clicks_total": { + "type": "long", + "_meta": { + "description": "General number of clicks in the application since we started counting them" + } + }, + "clicks_7_days": { + "type": "long", + "_meta": { + "description": "General number of clicks in the application over the last 7 days" + } + }, + "clicks_30_days": { + "type": "long", + "_meta": { + "description": "General number of clicks in the application over the last 30 days" + } + }, + "clicks_90_days": { + "type": "long", + "_meta": { + "description": "General number of clicks in the application over the last 90 days" + } + }, + "minutes_on_screen_total": { + "type": "float", + "_meta": { + "description": "Minutes the application is active and on-screen since we started counting them." + } + }, + "minutes_on_screen_7_days": { + "type": "float", + "_meta": { + "description": "Minutes the application is active and on-screen over the last 7 days" + } + }, + "minutes_on_screen_30_days": { + "type": "float", + "_meta": { + "description": "Minutes the application is active and on-screen over the last 30 days" + } + }, + "minutes_on_screen_90_days": { + "type": "float", + "_meta": { + "description": "Minutes the application is active and on-screen over the last 90 days" + } + }, + "views": { + "type": "array", + "items": { + "properties": { + "appId": { + "type": "keyword", + "_meta": { + "description": "The application being tracked" + } + }, + "viewId": { + "type": "keyword", + "_meta": { + "description": "The application view being tracked" + } + }, + "clicks_total": { + "type": "long", + "_meta": { + "description": "General number of clicks in the application sub view since we started counting them" + } + }, + "clicks_7_days": { + "type": "long", + "_meta": { + "description": "General number of clicks in the active application sub view over the last 7 days" + } + }, + "clicks_30_days": { + "type": "long", + "_meta": { + "description": "General number of clicks in the active application sub view over the last 30 days" + } + }, + "clicks_90_days": { + "type": "long", + "_meta": { + "description": "General number of clicks in the active application sub view over the last 90 days" + } + }, + "minutes_on_screen_total": { + "type": "float", + "_meta": { + "description": "Minutes the application sub view is active and on-screen since we started counting them." + } + }, + "minutes_on_screen_7_days": { + "type": "float", + "_meta": { + "description": "Minutes the application is active and on-screen active application sub view over the last 7 days" + } + }, + "minutes_on_screen_30_days": { + "type": "float", + "_meta": { + "description": "Minutes the application is active and on-screen active application sub view over the last 30 days" + } + }, + "minutes_on_screen_90_days": { + "type": "float", + "_meta": { + "description": "Minutes the application is active and on-screen active application sub view over the last 90 days" + } + } + } + } + } + } + }, "observability-logs-explorer": { "properties": { "appId": {