Skip to content

Commit 697cd64

Browse files
author
Constance
authored
[Enterprise Search] Update the browser/document title on plugin navigation (#74392)
* Rename kibana_breadcrumbs to kibana_chrome - in anticipation of upcoming refactor where SetPageChrome now handles document title as well as Kibana breadcrumbs + cleanup exports * Add generate_title helpers - will be used by new set_chrome helper * Add setDocTitle context + behavior to set_chrome + refactor set_chrome.test.tsx: - add title tests - add SetWorkplaceSearchChrome test to increase coverage - clean up inner/outer call in favor of simpler mocks/imports - simplify isRoot tests * Update plugins to set product titles - on mount but before render * Copy feedback - change pipe separator to hyphen - to match ' - Elastic' * Add functional tests confirming that document titles updated
1 parent 7e55da5 commit 697cd64

File tree

25 files changed

+243
-96
lines changed

25 files changed

+243
-96
lines changed

test/functional/services/common/browser.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,14 @@ export async function BrowserProvider({ getService }: FtrProviderContext) {
163163
return currentWithoutTime;
164164
}
165165

166+
/**
167+
* Gets the page/document title of the focused window/frame.
168+
* https://www.selenium.dev/selenium/docs/api/javascript/module/selenium-webdriver/chrome_exports_Driver.html#getTitle
169+
*/
170+
public async getTitle() {
171+
return await driver.getTitle();
172+
}
173+
166174
/**
167175
* Navigates the focused window/frame to a new URL.
168176
* https://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/chrome_exports_Driver.html#get

x-pack/plugins/enterprise_search/public/applications/__mocks__/kibana_context.mock.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@ import { httpServiceMock } from 'src/core/public/mocks';
1313
export const mockKibanaContext = {
1414
http: httpServiceMock.createSetupContract(),
1515
setBreadcrumbs: jest.fn(),
16+
setDocTitle: jest.fn(),
1617
enterpriseSearchUrl: 'http://localhost:3002',
1718
};

x-pack/plugins/enterprise_search/public/applications/app_search/components/empty_states/empty_state.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { EuiPage, EuiPageBody, EuiPageContent, EuiEmptyPrompt, EuiButton } from
99
import { FormattedMessage } from '@kbn/i18n/react';
1010

1111
import { sendTelemetry } from '../../../shared/telemetry';
12-
import { SetAppSearchBreadcrumbs as SetBreadcrumbs } from '../../../shared/kibana_breadcrumbs';
12+
import { SetAppSearchChrome as SetPageChrome } from '../../../shared/kibana_chrome';
1313
import { KibanaContext, IKibanaContext } from '../../../index';
1414

1515
import { EngineOverviewHeader } from '../engine_overview_header';
@@ -33,7 +33,7 @@ export const EmptyState: React.FC = () => {
3333

3434
return (
3535
<EuiPage restrictWidth>
36-
<SetBreadcrumbs isRoot />
36+
<SetPageChrome isRoot />
3737

3838
<EuiPageBody>
3939
<EngineOverviewHeader />

x-pack/plugins/enterprise_search/public/applications/app_search/components/empty_states/error_state.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import React from 'react';
88
import { EuiPage, EuiPageBody, EuiPageContent } from '@elastic/eui';
99

1010
import { ErrorStatePrompt } from '../../../shared/error_state';
11-
import { SetAppSearchBreadcrumbs as SetBreadcrumbs } from '../../../shared/kibana_breadcrumbs';
11+
import { SetAppSearchChrome as SetPageChrome } from '../../../shared/kibana_chrome';
1212
import { SendAppSearchTelemetry as SendTelemetry } from '../../../shared/telemetry';
1313
import { EngineOverviewHeader } from '../engine_overview_header';
1414

@@ -17,7 +17,7 @@ import './empty_states.scss';
1717
export const ErrorState: React.FC = () => {
1818
return (
1919
<EuiPage restrictWidth>
20-
<SetBreadcrumbs isRoot />
20+
<SetPageChrome isRoot />
2121
<SendTelemetry action="error" metric="cannot_connect" />
2222

2323
<EuiPageBody>

x-pack/plugins/enterprise_search/public/applications/app_search/components/empty_states/loading_state.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@
77
import React from 'react';
88
import { EuiPage, EuiPageBody, EuiPageContent, EuiSpacer, EuiLoadingContent } from '@elastic/eui';
99

10-
import { SetAppSearchBreadcrumbs as SetBreadcrumbs } from '../../../shared/kibana_breadcrumbs';
10+
import { SetAppSearchChrome as SetPageChrome } from '../../../shared/kibana_chrome';
1111
import { EngineOverviewHeader } from '../engine_overview_header';
1212

1313
import './empty_states.scss';
1414

1515
export const LoadingState: React.FC = () => {
1616
return (
1717
<EuiPage restrictWidth>
18-
<SetBreadcrumbs isRoot />
18+
<SetPageChrome isRoot />
1919

2020
<EuiPageBody>
2121
<EngineOverviewHeader />

x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
} from '@elastic/eui';
1717
import { FormattedMessage } from '@kbn/i18n/react';
1818

19-
import { SetAppSearchBreadcrumbs as SetBreadcrumbs } from '../../../shared/kibana_breadcrumbs';
19+
import { SetAppSearchChrome as SetPageChrome } from '../../../shared/kibana_chrome';
2020
import { SendAppSearchTelemetry as SendTelemetry } from '../../../shared/telemetry';
2121
import { LicenseContext, ILicenseContext, hasPlatinumLicense } from '../../../shared/licensing';
2222
import { KibanaContext, IKibanaContext } from '../../../index';
@@ -93,7 +93,7 @@ export const EngineOverview: React.FC = () => {
9393

9494
return (
9595
<EuiPage restrictWidth className="engineOverview">
96-
<SetBreadcrumbs isRoot />
96+
<SetPageChrome isRoot />
9797
<SendTelemetry action="viewed" metric="engines_overview" />
9898

9999
<EuiPageBody>

x-pack/plugins/enterprise_search/public/applications/app_search/components/setup_guide/setup_guide.test.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import React from 'react';
88
import { shallow } from 'enzyme';
99

10-
import { SetAppSearchBreadcrumbs as SetBreadcrumbs } from '../../../shared/kibana_breadcrumbs';
10+
import { SetAppSearchChrome as SetPageChrome } from '../../../shared/kibana_chrome';
1111
import { SetupGuide as SetupGuideLayout } from '../../../shared/setup_guide';
1212
import { SetupGuide } from './';
1313

@@ -16,6 +16,6 @@ describe('SetupGuide', () => {
1616
const wrapper = shallow(<SetupGuide />);
1717

1818
expect(wrapper.find(SetupGuideLayout)).toHaveLength(1);
19-
expect(wrapper.find(SetBreadcrumbs)).toHaveLength(1);
19+
expect(wrapper.find(SetPageChrome)).toHaveLength(1);
2020
});
2121
});

x-pack/plugins/enterprise_search/public/applications/app_search/components/setup_guide/setup_guide.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { i18n } from '@kbn/i18n';
1111

1212
import { APP_SEARCH_PLUGIN } from '../../../../../common/constants';
1313
import { SetupGuide as SetupGuideLayout } from '../../../shared/setup_guide';
14-
import { SetAppSearchBreadcrumbs as SetBreadcrumbs } from '../../../shared/kibana_breadcrumbs';
14+
import { SetAppSearchChrome as SetPageChrome } from '../../../shared/kibana_chrome';
1515
import { SendAppSearchTelemetry as SendTelemetry } from '../../../shared/telemetry';
1616
import GettingStarted from '../../assets/getting_started.png';
1717

@@ -22,7 +22,7 @@ export const SetupGuide: React.FC = () => (
2222
standardAuthLink="https://swiftype.com/documentation/app-search/self-managed/security#standard"
2323
elasticsearchNativeAuthLink="https://swiftype.com/documentation/app-search/self-managed/security#elasticsearch-native-realm"
2424
>
25-
<SetBreadcrumbs
25+
<SetPageChrome
2626
text={i18n.translate('xpack.enterpriseSearch.setupGuide.title', {
2727
defaultMessage: 'Setup Guide',
2828
})}

x-pack/plugins/enterprise_search/public/applications/index.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export interface IKibanaContext {
1717
enterpriseSearchUrl?: string;
1818
http: HttpSetup;
1919
setBreadcrumbs(crumbs: ChromeBreadcrumb[]): void;
20+
setDocTitle(title: string): void;
2021
}
2122

2223
export const KibanaContext = React.createContext({});
@@ -41,6 +42,7 @@ export const renderApp = (
4142
http: core.http,
4243
enterpriseSearchUrl: config.host,
4344
setBreadcrumbs: core.chrome.setBreadcrumbs,
45+
setDocTitle: core.chrome.docTitle.change,
4446
}}
4547
>
4648
<LicenseProvider license$={plugins.licensing.license$}>

x-pack/plugins/enterprise_search/public/applications/shared/kibana_breadcrumbs/set_breadcrumbs.test.tsx

Lines changed: 0 additions & 63 deletions
This file was deleted.

0 commit comments

Comments
 (0)