mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
Upgrade EUI to v97.0.0 (#195525)
`v96.1.0`⏩`v97.0.0` _[Questions? Please see our Kibana upgrade FAQ.](https://github.com/elastic/eui/blob/main/wiki/eui-team-processes/upgrading-kibana.md#faq-for-kibana-teams)_ --- ## [`v97.0.0`](https://github.com/elastic/eui/releases/v97.0.0) **Breaking changes** - EuiDataGrid's custom grid body (rendered via `renderCustomGridBody`) no longer automatically renders the column header row or footer rows. It instead now passes the `headerRow` and `footerRow` React elements, which require manual rendering. ([#8028](https://github.com/elastic/eui/pull/8028)) - This change was made to allow consumers to sync header/footer rows with their own custom virtualization libraries. - To facilitate this, a `gridWidth` prop is now also passed to custom grid body renderers. **Bug fixes** - Fixed inputs not taking the whole width when passing `fullWidth` as `true` to EuiDatePickerRange component ([#8061](https://github.com/elastic/eui/pull/8061)) **Accessibility** - Improved accessibility of `EuiExternalLinkIcon` by clarifying text for Screen Reader users. ([#8065](https://github.com/elastic/eui/pull/8065)) --------- Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
This commit is contained in:
parent
cc46549c2f
commit
cd60c66d19
54 changed files with 228 additions and 246 deletions
|
@ -119,7 +119,7 @@
|
|||
"@elastic/ecs": "^8.11.1",
|
||||
"@elastic/elasticsearch": "^8.15.0",
|
||||
"@elastic/ems-client": "8.5.3",
|
||||
"@elastic/eui": "96.1.0",
|
||||
"@elastic/eui": "97.0.0",
|
||||
"@elastic/filesaver": "1.1.2",
|
||||
"@elastic/node-crypto": "1.2.1",
|
||||
"@elastic/numeral": "^2.5.1",
|
||||
|
|
|
@ -140,8 +140,8 @@ exports[`#start() returns \`Context\` component 1`] = `
|
|||
"euiDisplaySelector.rowHeightLabel": "Row height",
|
||||
"euiDualRange.sliderScreenReaderInstructions": "You are in a custom range slider. Use the Up and Down arrow keys to change the minimum value. Press Tab to interact with the maximum value.",
|
||||
"euiErrorBoundary.error": "Error",
|
||||
"euiExternalLinkIcon.ariaLabel": "External link",
|
||||
"euiExternalLinkIcon.newTarget.screenReaderOnlyText": "(opens in a new tab or window)",
|
||||
"euiExternalLinkIcon.externalTarget.screenReaderOnlyText": "(external)",
|
||||
"euiExternalLinkIcon.newTarget.screenReaderOnlyText": "(external, opens in a new tab or window)",
|
||||
"euiFieldPassword.maskPassword": "Mask password",
|
||||
"euiFieldPassword.showPassword": "Show password as plain text. Note: this will visually expose your password on the screen.",
|
||||
"euiFieldSearch.clearSearchButtonLabel": "Clear search input",
|
||||
|
|
|
@ -860,13 +860,16 @@ export const getEuiContextMapping = (): EuiTokensObject => {
|
|||
'core.euiInlineEditForm.saveButtonAriaLabel',
|
||||
{ defaultMessage: 'Save edit' }
|
||||
),
|
||||
'euiExternalLinkIcon.ariaLabel': i18n.translate('core.euiExternalLinkIcon.ariaLabel', {
|
||||
defaultMessage: 'External link',
|
||||
}),
|
||||
'euiExternalLinkIcon.externalTarget.screenReaderOnlyText': i18n.translate(
|
||||
'core.euiExternalLinkIcon.externalTarget.screenReaderOnlyText',
|
||||
{
|
||||
defaultMessage: '(external)',
|
||||
}
|
||||
),
|
||||
'euiExternalLinkIcon.newTarget.screenReaderOnlyText': i18n.translate(
|
||||
'core.euiExternalLinkIcon.newTarget.screenReaderOnlyText',
|
||||
{
|
||||
defaultMessage: '(opens in a new tab or window)',
|
||||
defaultMessage: '(external, opens in a new tab or window)',
|
||||
}
|
||||
),
|
||||
'euiLoadingStrings.ariaLabel': i18n.translate('core.euiLoadingStrings.ariaLabel', {
|
||||
|
|
|
@ -53,5 +53,4 @@ export const getPaths = <A>(validation: t.Validation<A>): string[] => {
|
|||
/**
|
||||
* Convenience utility to remove text appended to links by EUI
|
||||
*/
|
||||
export const removeExternalLinkText = (str: string) =>
|
||||
str.replace(/\(opens in a new tab or window\)/g, '');
|
||||
export const removeExternalLinkText = (str: string) => str.replace(/\(external[^)]*\)/g, '');
|
||||
|
|
|
@ -157,7 +157,7 @@ describe('Unified data table cell rendering', function () {
|
|||
/>
|
||||
);
|
||||
expect(component.html()).toMatchInlineSnapshot(
|
||||
`"<div data-test-subj=\\"dataTableExpandCellActionPopover\\" class=\\"euiFlexGroup css-1h68cm-euiFlexGroup-none-flexStart-stretch-row\\"><div class=\\"euiFlexItem css-9sbomz-euiFlexItem-grow-1\\"><span class=\\"unifiedDataTable__cellPopoverValue eui-textBreakWord\\"><span>100</span></span></div><div class=\\"euiFlexItem css-kpsrin-euiFlexItem-growZero\\"><button class=\\"euiButtonIcon css-1gd56qr-euiButtonIcon-xs-empty-primary\\" type=\\"button\\" aria-label=\\"Close popover\\" data-test-subj=\\"docTableClosePopover\\"><span data-euiicon-type=\\"cross\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\" color=\\"inherit\\"></span></button></div></div>"`
|
||||
`"<div data-test-subj=\\"dataTableExpandCellActionPopover\\" class=\\"euiFlexGroup css-1h68cm-euiFlexGroup-none-flexStart-stretch-row\\"><div class=\\"euiFlexItem css-9sbomz-euiFlexItem-grow-1\\"><span class=\\"unifiedDataTable__cellPopoverValue eui-textBreakWord\\"><span>100</span></span></div><div class=\\"euiFlexItem css-kpsrin-euiFlexItem-growZero\\"><button class=\\"euiButtonIcon css-w92548-euiButtonIcon-xs-empty-primary\\" type=\\"button\\" aria-label=\\"Close popover\\" data-test-subj=\\"docTableClosePopover\\"><span data-euiicon-type=\\"cross\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\" color=\\"inherit\\"></span></button></div></div>"`
|
||||
);
|
||||
});
|
||||
|
||||
|
@ -184,7 +184,7 @@ describe('Unified data table cell rendering', function () {
|
|||
/>
|
||||
);
|
||||
expect(component.html()).toMatchInlineSnapshot(
|
||||
`"<div data-test-subj=\\"dataTableExpandCellActionPopover\\" class=\\"euiFlexGroup css-1h68cm-euiFlexGroup-none-flexStart-stretch-row\\"><div class=\\"euiFlexItem css-9sbomz-euiFlexItem-grow-1\\"><span class=\\"unifiedDataTable__cellPopoverValue eui-textBreakWord\\"><span>100</span></span></div><div class=\\"euiFlexItem css-kpsrin-euiFlexItem-growZero\\"><button class=\\"euiButtonIcon css-1gd56qr-euiButtonIcon-xs-empty-primary\\" type=\\"button\\" aria-label=\\"Close popover\\" data-test-subj=\\"docTableClosePopover\\"><span data-euiicon-type=\\"cross\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\" color=\\"inherit\\"></span></button></div></div>"`
|
||||
`"<div data-test-subj=\\"dataTableExpandCellActionPopover\\" class=\\"euiFlexGroup css-1h68cm-euiFlexGroup-none-flexStart-stretch-row\\"><div class=\\"euiFlexItem css-9sbomz-euiFlexItem-grow-1\\"><span class=\\"unifiedDataTable__cellPopoverValue eui-textBreakWord\\"><span>100</span></span></div><div class=\\"euiFlexItem css-kpsrin-euiFlexItem-growZero\\"><button class=\\"euiButtonIcon css-w92548-euiButtonIcon-xs-empty-primary\\" type=\\"button\\" aria-label=\\"Close popover\\" data-test-subj=\\"docTableClosePopover\\"><span data-euiicon-type=\\"cross\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\" color=\\"inherit\\"></span></button></div></div>"`
|
||||
);
|
||||
findTestSubject(component, 'docTableClosePopover').simulate('click');
|
||||
expect(closePopoverMockFn).toHaveBeenCalledTimes(1);
|
||||
|
|
|
@ -87,7 +87,7 @@ export const LICENSE_OVERRIDES = {
|
|||
'jsts@1.6.2': ['Eclipse Distribution License - v 1.0'], // cf. https://github.com/bjornharrtell/jsts
|
||||
'@mapbox/jsonlint-lines-primitives@2.0.2': ['MIT'], // license in readme https://github.com/tmcw/jsonlint
|
||||
'@elastic/ems-client@8.5.3': ['Elastic License 2.0'],
|
||||
'@elastic/eui@96.1.0': ['Elastic License 2.0 OR AGPL-3.0-only OR SSPL-1.0'],
|
||||
'@elastic/eui@97.0.0': ['Elastic License 2.0 OR AGPL-3.0-only OR SSPL-1.0'],
|
||||
'language-subtag-registry@0.3.21': ['CC-BY-4.0'], // retired ODC‑By license https://github.com/mattcg/language-subtag-registry
|
||||
'buffers@0.1.1': ['MIT'], // license in importing module https://www.npmjs.com/package/binary
|
||||
'@bufbuild/protobuf@1.2.1': ['Apache-2.0'], // license (Apache-2.0 AND BSD-3-Clause)
|
||||
|
|
|
@ -170,13 +170,12 @@ exports[`UrlFormatEditor should render normally 1`] = `
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
|
@ -231,13 +230,12 @@ exports[`UrlFormatEditor should render normally 1`] = `
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
@ -42,13 +42,12 @@ test('ErrorEmbeddable renders an embeddable with markdown message', async () =>
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
`);
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
import React from 'react';
|
||||
|
||||
import { DEFAULT_DASHBOARD_DRILLDOWN_OPTIONS } from '@kbn/presentation-util-plugin/public';
|
||||
import { createEvent, fireEvent, render, screen, within } from '@testing-library/react';
|
||||
import { createEvent, fireEvent, render, screen } from '@testing-library/react';
|
||||
import userEvent from '@testing-library/user-event';
|
||||
|
||||
import { LINKS_VERTICAL_LAYOUT } from '../../../common/content_management';
|
||||
|
@ -75,7 +75,7 @@ describe('Dashboard link component', () => {
|
|||
expect(link).toHaveTextContent('Dashboard 1');
|
||||
|
||||
// does not render external link icon
|
||||
const externalIcon = within(link).queryByText('External link');
|
||||
const externalIcon = link.querySelector('[data-euiicon-type="popout"]');
|
||||
expect(externalIcon).toBeNull();
|
||||
|
||||
// calls `navigate` on click
|
||||
|
@ -122,8 +122,8 @@ describe('Dashboard link component', () => {
|
|||
const link = screen.getByTestId('dashboardLink--foo');
|
||||
expect(link).toBeInTheDocument();
|
||||
// external link icon is rendered
|
||||
const externalIcon = within(link).getByText('External link');
|
||||
expect(externalIcon?.getAttribute('data-euiicon-type')).toBe('popout');
|
||||
const externalIcon = link.querySelector('[data-euiicon-type="popout"]');
|
||||
expect(externalIcon).toBeInTheDocument();
|
||||
|
||||
// calls `window.open`
|
||||
await userEvent.click(link);
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
import React from 'react';
|
||||
|
||||
import userEvent from '@testing-library/user-event';
|
||||
import { createEvent, fireEvent, render, screen, within } from '@testing-library/react';
|
||||
import { createEvent, fireEvent, render, screen } from '@testing-library/react';
|
||||
import { LINKS_VERTICAL_LAYOUT } from '../../../common/content_management';
|
||||
import { ExternalLinkComponent } from './external_link_component';
|
||||
import { coreServices } from '../../services/kibana_services';
|
||||
|
@ -39,8 +39,8 @@ describe('external link component', () => {
|
|||
|
||||
const link = await screen.findByTestId('externalLink--foo');
|
||||
expect(link).toBeInTheDocument();
|
||||
const externalIcon = within(link).getByText('External link');
|
||||
expect(externalIcon.getAttribute('data-euiicon-type')).toBe('popout');
|
||||
const externalIcon = link.querySelector('[data-euiicon-type="popout"]');
|
||||
expect(externalIcon).toBeInTheDocument();
|
||||
await userEvent.click(link);
|
||||
expect(window.open).toHaveBeenCalledWith('https://example.com', '_blank');
|
||||
});
|
||||
|
@ -52,8 +52,8 @@ describe('external link component', () => {
|
|||
};
|
||||
render(<ExternalLinkComponent link={linkInfo} layout={LINKS_VERTICAL_LAYOUT} />);
|
||||
const link = await screen.findByTestId('externalLink--foo');
|
||||
const externalIcon = within(link).getByText('External link');
|
||||
expect(externalIcon?.getAttribute('data-euiicon-type')).toBe('popout');
|
||||
const externalIcon = link.querySelector('[data-euiicon-type="popout"]');
|
||||
expect(externalIcon).toBeInTheDocument();
|
||||
});
|
||||
|
||||
test('modified click does not trigger event.preventDefault', async () => {
|
||||
|
|
|
@ -37,13 +37,12 @@ exports[`NotFoundErrors component renders correctly for index-pattern type 1`] =
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
to fix it — otherwise click the delete button above.
|
||||
|
@ -89,13 +88,12 @@ exports[`NotFoundErrors component renders correctly for index-pattern-field type
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
to fix it — otherwise click the delete button above.
|
||||
|
@ -141,13 +139,12 @@ exports[`NotFoundErrors component renders correctly for search type 1`] = `
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
to fix it — otherwise click the delete button above.
|
||||
|
@ -191,13 +188,12 @@ exports[`NotFoundErrors component renders correctly for unknown type 1`] = `
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
to fix it — otherwise click the delete button above.
|
||||
|
|
|
@ -26,7 +26,7 @@ describe('NotFoundErrors component', () => {
|
|||
const callOut = mounted.find('EuiCallOut');
|
||||
expect(callOut.render()).toMatchSnapshot();
|
||||
expect(mounted.text()).toMatchInlineSnapshot(
|
||||
`"There is a problem with this saved objectThe saved search associated with this object no longer exists.If you know what this error means, you can use the Saved objects APIsExternal link(opens in a new tab or window) to fix it — otherwise click the delete button above."`
|
||||
`"There is a problem with this saved objectThe saved search associated with this object no longer exists.If you know what this error means, you can use the Saved objects APIs(external, opens in a new tab or window) to fix it — otherwise click the delete button above."`
|
||||
);
|
||||
});
|
||||
|
||||
|
@ -35,7 +35,7 @@ describe('NotFoundErrors component', () => {
|
|||
const callOut = mounted.find('EuiCallOut');
|
||||
expect(callOut.render()).toMatchSnapshot();
|
||||
expect(mounted.text()).toMatchInlineSnapshot(
|
||||
`"There is a problem with this saved objectThe data view associated with this object no longer exists.If you know what this error means, you can use the Saved objects APIsExternal link(opens in a new tab or window) to fix it — otherwise click the delete button above."`
|
||||
`"There is a problem with this saved objectThe data view associated with this object no longer exists.If you know what this error means, you can use the Saved objects APIs(external, opens in a new tab or window) to fix it — otherwise click the delete button above."`
|
||||
);
|
||||
});
|
||||
|
||||
|
@ -44,7 +44,7 @@ describe('NotFoundErrors component', () => {
|
|||
const callOut = mounted.find('EuiCallOut');
|
||||
expect(callOut.render()).toMatchSnapshot();
|
||||
expect(mounted.text()).toMatchInlineSnapshot(
|
||||
`"There is a problem with this saved objectA field associated with this object no longer exists in the data view.If you know what this error means, you can use the Saved objects APIsExternal link(opens in a new tab or window) to fix it — otherwise click the delete button above."`
|
||||
`"There is a problem with this saved objectA field associated with this object no longer exists in the data view.If you know what this error means, you can use the Saved objects APIs(external, opens in a new tab or window) to fix it — otherwise click the delete button above."`
|
||||
);
|
||||
});
|
||||
|
||||
|
@ -53,7 +53,7 @@ describe('NotFoundErrors component', () => {
|
|||
const callOut = mounted.find('EuiCallOut');
|
||||
expect(callOut.render()).toMatchSnapshot();
|
||||
expect(mounted.text()).toMatchInlineSnapshot(
|
||||
`"There is a problem with this saved objectIf you know what this error means, you can use the Saved objects APIsExternal link(opens in a new tab or window) to fix it — otherwise click the delete button above."`
|
||||
`"There is a problem with this saved objectIf you know what this error means, you can use the Saved objects APIs(external, opens in a new tab or window) to fix it — otherwise click the delete button above."`
|
||||
);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
exports[`VisLegend Component Legend closed should match the snapshot 1`] = `"<div class=\\"visLegend\\"><button type=\\"button\\" class=\\"visLegend__toggle kbn-resetFocusState\\" aria-label=\\"Toggle legend\\" aria-expanded=\\"false\\" aria-controls=\\"legendId\\" data-test-subj=\\"vislibToggleLegend\\" title=\\"Toggle legend\\"><span data-euiicon-type=\\"list\\" color=\\"text\\"></span></button></div>"`;
|
||||
|
||||
exports[`VisLegend Component Legend open should match the snapshot 1`] = `"<div class=\\"visLegend\\"><button type=\\"button\\" class=\\"visLegend__toggle kbn-resetFocusState visLegend__toggle--isOpen\\" aria-label=\\"Toggle legend\\" aria-expanded=\\"true\\" aria-controls=\\"legendId\\" data-test-subj=\\"vislibToggleLegend\\" title=\\"Toggle legend\\"><span data-euiicon-type=\\"list\\" color=\\"text\\"></span></button><ul class=\\"visLegend__list\\" id=\\"legendId\\"><li class=\\"visLegend__value\\"><div class=\\"euiPopover css-bvzum9-euiPopover-block\\"><button class=\\"euiButtonEmpty visLegend__button css-iy5vln-euiButtonDisplay-euiButtonEmpty-xs-empty-text-flush-left\\" type=\\"button\\" data-label=\\"A\\" title=\\"A\\" aria-label=\\"A, toggle options\\" data-test-subj=\\"legend-A\\"><span class=\\"euiButtonEmpty__content css-cf8eum-euiButtonDisplayContent\\"><span class=\\"eui-textTruncate euiButtonEmpty__text\\"><span data-euiicon-type=\\"dot\\" color=\\"red\\" data-test-subj=\\"legendSelectedColor-red\\"></span><span class=\\"visLegend__valueTitle\\">A</span></span></span></button></div></li><li class=\\"visLegend__value\\"><div class=\\"euiPopover css-bvzum9-euiPopover-block\\"><button class=\\"euiButtonEmpty visLegend__button css-iy5vln-euiButtonDisplay-euiButtonEmpty-xs-empty-text-flush-left\\" type=\\"button\\" data-label=\\"B\\" title=\\"B\\" aria-label=\\"B, toggle options\\" data-test-subj=\\"legend-B\\"><span class=\\"euiButtonEmpty__content css-cf8eum-euiButtonDisplayContent\\"><span class=\\"eui-textTruncate euiButtonEmpty__text\\"><span data-euiicon-type=\\"dot\\" color=\\"red\\" data-test-subj=\\"legendSelectedColor-red\\"></span><span class=\\"visLegend__valueTitle\\">B</span></span></span></button></div></li></ul></div>"`;
|
||||
exports[`VisLegend Component Legend open should match the snapshot 1`] = `"<div class=\\"visLegend\\"><button type=\\"button\\" class=\\"visLegend__toggle kbn-resetFocusState visLegend__toggle--isOpen\\" aria-label=\\"Toggle legend\\" aria-expanded=\\"true\\" aria-controls=\\"legendId\\" data-test-subj=\\"vislibToggleLegend\\" title=\\"Toggle legend\\"><span data-euiicon-type=\\"list\\" color=\\"text\\"></span></button><ul class=\\"visLegend__list\\" id=\\"legendId\\"><li class=\\"visLegend__value\\"><div class=\\"euiPopover css-bvzum9-euiPopover-block\\"><button class=\\"euiButtonEmpty visLegend__button css-1d7o588-euiButtonDisplay-euiButtonEmpty-xs-empty-text-flush-left\\" type=\\"button\\" data-label=\\"A\\" title=\\"A\\" aria-label=\\"A, toggle options\\" data-test-subj=\\"legend-A\\"><span class=\\"euiButtonEmpty__content css-cf8eum-euiButtonDisplayContent\\"><span class=\\"eui-textTruncate euiButtonEmpty__text\\"><span data-euiicon-type=\\"dot\\" color=\\"red\\" data-test-subj=\\"legendSelectedColor-red\\"></span><span class=\\"visLegend__valueTitle\\">A</span></span></span></button></div></li><li class=\\"visLegend__value\\"><div class=\\"euiPopover css-bvzum9-euiPopover-block\\"><button class=\\"euiButtonEmpty visLegend__button css-1d7o588-euiButtonDisplay-euiButtonEmpty-xs-empty-text-flush-left\\" type=\\"button\\" data-label=\\"B\\" title=\\"B\\" aria-label=\\"B, toggle options\\" data-test-subj=\\"legend-B\\"><span class=\\"euiButtonEmpty__content css-cf8eum-euiButtonDisplayContent\\"><span class=\\"eui-textTruncate euiButtonEmpty__text\\"><span data-euiicon-type=\\"dot\\" color=\\"red\\" data-test-subj=\\"legendSelectedColor-red\\"></span><span class=\\"visLegend__valueTitle\\">B</span></span></span></button></div></li></ul></div>"`;
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -18,7 +18,7 @@ import { EuiButton } from '@elastic/eui';
|
|||
* Convenience utility to remove text appended to links by EUI
|
||||
*/
|
||||
export const removeExternalLinkText = (str: string | null) =>
|
||||
str?.replace(/\(opens in a new tab or window\)/g, '');
|
||||
str?.replace(/\(external[^)]*\)/g, '');
|
||||
|
||||
export async function waitForComponentToPaint<P = {}>(wrapper: ReactWrapper<P>, amount = 0) {
|
||||
await act(async () => {
|
||||
|
|
|
@ -132,13 +132,12 @@ exports[`extend index management ilm summary extension should render a phase def
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
|
@ -303,13 +302,12 @@ exports[`extend index management ilm summary extension should render a step info
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
|
@ -470,13 +468,12 @@ exports[`extend index management ilm summary extension should render an error pa
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
|
@ -638,13 +635,12 @@ exports[`extend index management ilm summary extension should render the tab whe
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
@ -40,13 +40,12 @@ exports[`RequestTrialExtension component should display when enterprise license
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
, request an extension now.
|
||||
|
@ -116,13 +115,12 @@ exports[`RequestTrialExtension component should display when license is active a
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
, request an extension now.
|
||||
|
@ -192,13 +190,12 @@ exports[`RequestTrialExtension component should display when license is not acti
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
, request an extension now.
|
||||
|
@ -268,13 +265,12 @@ exports[`RequestTrialExtension component should display when platinum license is
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
, request an extension now.
|
||||
|
|
|
@ -40,13 +40,12 @@ exports[`RevertToBasic component should display when license is about to expire
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
.
|
||||
|
@ -114,13 +113,12 @@ exports[`RevertToBasic component should display when license is expired 1`] = `
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
.
|
||||
|
@ -188,13 +186,12 @@ exports[`RevertToBasic component should display when trial is active 1`] = `
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
.
|
||||
|
|
|
@ -40,13 +40,12 @@ exports[`StartTrial component when trial is allowed display for basic license 1`
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
have to offer.
|
||||
|
@ -114,13 +113,12 @@ exports[`StartTrial component when trial is allowed should display for expired e
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
have to offer.
|
||||
|
@ -188,13 +186,12 @@ exports[`StartTrial component when trial is allowed should display for expired p
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
have to offer.
|
||||
|
@ -262,13 +259,12 @@ exports[`StartTrial component when trial is allowed should display for gold lice
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
have to offer.
|
||||
|
|
|
@ -89,13 +89,12 @@ Array [
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
Go to
|
||||
|
@ -109,13 +108,12 @@ Array [
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
section for a deployment to configure monitoring. For more information visit
|
||||
|
@ -129,13 +127,12 @@ Array [
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</p>
|
||||
|
|
|
@ -156,13 +156,12 @@ Array [
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
Go to
|
||||
|
@ -176,13 +175,12 @@ Array [
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
section for a deployment to configure monitoring. For more information visit
|
||||
|
@ -196,13 +194,12 @@ Array [
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</p>
|
||||
|
|
|
@ -12,8 +12,7 @@ import * as stories from './link_preview.stories';
|
|||
|
||||
const { Example } = composeStories(stories);
|
||||
|
||||
export const removeExternalLinkText = (str: string) =>
|
||||
str.replace(/\(opens in a new tab or window\)/g, '');
|
||||
export const removeExternalLinkText = (str: string) => str.replace(/\(external[^)]*\)/g, '');
|
||||
|
||||
describe('LinkPreview', () => {
|
||||
const getElementValue = (container: HTMLElement, id: string) =>
|
||||
|
|
|
@ -43,13 +43,13 @@ journey('AlertingDefaults', async ({ page, params }) => {
|
|||
await page.press('input[type="text"]', 'Tab');
|
||||
});
|
||||
step(
|
||||
'Fill text=Webhook URLCreate a Slack Webhook URL(opens in a new tab or window) >> input[type="text"]',
|
||||
'Fill text=Webhook URLCreate a Slack Webhook URL(external, opens in a new tab or window) >> input[type="text"]',
|
||||
async () => {
|
||||
if (await page.isVisible(byTestId('webhookButton'))) {
|
||||
await page.click(byTestId('webhookButton'));
|
||||
}
|
||||
await page.fill(
|
||||
'text=Webhook URLCreate a Slack Webhook URL(opens in a new tab or window) >> input[type="text"]',
|
||||
'text=Webhook URLCreate a Slack Webhook URL(external, opens in a new tab or window) >> input[type="text"]',
|
||||
'https://www.slack.com'
|
||||
);
|
||||
await page.click('button:has-text("Save")');
|
||||
|
@ -74,10 +74,10 @@ journey('AlertingDefaults', async ({ page, params }) => {
|
|||
await page.fill('input[type="password"]', 'changeme');
|
||||
await page.click('button:has-text("Save")');
|
||||
await page.click(
|
||||
'text=Sender is required.Configure email accounts(opens in a new tab or window) >> input[type="text"]'
|
||||
'text=Sender is required.Configure email accounts(external, opens in a new tab or window) >> input[type="text"]'
|
||||
);
|
||||
await page.fill(
|
||||
'text=Sender is required.Configure email accounts(opens in a new tab or window) >> input[type="text"]',
|
||||
'text=Sender is required.Configure email accounts(external, opens in a new tab or window) >> input[type="text"]',
|
||||
'test@gmail.com'
|
||||
);
|
||||
await page.click('button:has-text("Save")');
|
||||
|
|
|
@ -36,7 +36,7 @@ journey(`DataRetentionPage`, async ({ page, params }) => {
|
|||
await page.click(':nth-match(:text("365 days + rollover"), 2)');
|
||||
await page.click(':nth-match(:text("365 days + rollover"), 3)');
|
||||
await page.click(':nth-match(:text("365 days + rollover"), 4)');
|
||||
await page.click('tbody div:has-text("synthetics(opens in a new tab or window)")');
|
||||
await page.click('tbody div:has-text("synthetics(external, opens in a new tab or window)")');
|
||||
});
|
||||
|
||||
step('validate data sizes', async () => {
|
||||
|
@ -60,7 +60,7 @@ journey(`DataRetentionPage`, async ({ page, params }) => {
|
|||
[page1] = await Promise.all([
|
||||
page.waitForEvent('popup'),
|
||||
page.click(
|
||||
'tbody div:has-text("synthetics-synthetics.browser-default_policy(opens in a new tab or window)")'
|
||||
'tbody div:has-text("synthetics-synthetics.browser-default_policy(external, opens in a new tab or window)")'
|
||||
),
|
||||
]);
|
||||
recordVideo(page1, 'data_retention_policy_change');
|
||||
|
@ -98,7 +98,7 @@ journey(`DataRetentionPage`, async ({ page, params }) => {
|
|||
|
||||
await page.reload();
|
||||
|
||||
await page.click('tbody div:has-text("synthetics(opens in a new tab or window)")');
|
||||
await page.click('tbody div:has-text("synthetics(external, opens in a new tab or window)")');
|
||||
await page1.close();
|
||||
|
||||
await assertText({ page, text: '10000 days + rollover' });
|
||||
|
|
|
@ -180,13 +180,12 @@ exports[`PingListExpandedRow renders link to docs if body is not recorded but it
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
for more information on recording response bodies.
|
||||
|
|
|
@ -16,7 +16,7 @@ describe('PingListExpandedRow', () => {
|
|||
|
||||
expect(screen.getByText(/Body not recorded. Read our/));
|
||||
expect(
|
||||
screen.getByRole('link', { name: 'docs External link (opens in a new tab or window)' })
|
||||
screen.getByRole('link', { name: 'docs (external, opens in a new tab or window)' })
|
||||
).toBeInTheDocument();
|
||||
expect(screen.getByText(/for more information on recording response bodies./));
|
||||
});
|
||||
|
|
|
@ -67,13 +67,12 @@ Array [
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</dd>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`UnauthenticatedPage renders as expected 1`] = `"<html lang=\\"en\\"><head><title>Elastic</title><style></style><style data-emotion=\\"eui \\"></style></style><link href=\\"/bundles/kbn-ui-shared-deps-src/kbn-ui-shared-deps-src.css\\" rel=\\"stylesheet\\"/>MockedFonts<link rel=\\"alternate icon\\" type=\\"image/png\\" href=\\"/ui/favicons/favicon.png\\"/><link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/ui/favicons/favicon.svg\\"/><meta name=\\"theme-color\\" content=\\"#ffffff\\"/><meta name=\\"color-scheme\\" content=\\"light dark\\"/></head><body><div data-test-subj=\\"promptPage\\" style=\\"min-block-size:max(460px, 100vh);padding-block-start:var(--euiFixedHeadersOffset, 0)\\" class=\\"euiPageTemplate eui-cjgvy1-euiPageOuter-row-grow\\"><main id=\\"EuiPageTemplateInner_generated-id\\" class=\\"eui-nq554q-euiPageInner\\"><section class=\\"eui-j6zf49-euiPageSection-grow-l-center-transparent\\"><div class=\\"eui-1oc2fb7-euiPageSection__content-l-center\\"><div class=\\"euiPanel euiPanel--plain euiEmptyPrompt eui-1is22ji-euiPanel-m-plain-hasShadow-euiEmptyPrompt-vertical\\"><div class=\\"euiEmptyPrompt__main eui-1s4ogs-euiEmptyPrompt__main-vertical-l\\"><div class=\\"euiEmptyPrompt__icon eui-1ysd0i8-euiEmptyPrompt__icon-vertical\\"><span data-euiicon-type=\\"warning\\" color=\\"danger\\"></span></div><div class=\\"euiEmptyPrompt__content eui-1cebog9-euiEmptyPrompt__content-vertical\\"><h2 class=\\"euiTitle eui-smz32e-euiTitle-m\\">We hit an authentication error</h2><div class=\\"euiSpacer euiSpacer--m eui-jv9za2-euiSpacer-m\\"></div><div class=\\"euiText eui-k2mw53-euiText-m-euiTextColor-subdued\\"><p>Try logging in again, and if the problem persists, contact your system administrator.</p></div><div class=\\"euiSpacer euiSpacer--l eui-p2o3x6-euiSpacer-l\\"></div><div class=\\"euiFlexGroup euiEmptyPrompt__actions eui-1rkti4c-euiFlexGroup-m-center-center-column-euiEmptyPrompt__actions-vertical\\"><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><a href=\\"/some/url?some-query=some-value#some-hash\\" rel=\\"noreferrer\\" class=\\"euiButton eui-1ew06m2-euiButtonDisplay-m-defaultMinWidth-fill-primary\\" data-test-subj=\\"logInButton\\"><span class=\\"eui-cf8eum-euiButtonDisplayContent\\">Log in</span></a></div></div></div></div></div></div></section></main></div></body></html>"`;
|
||||
exports[`UnauthenticatedPage renders as expected 1`] = `"<html lang=\\"en\\"><head><title>Elastic</title><style></style><style data-emotion=\\"eui \\"></style></style><link href=\\"/bundles/kbn-ui-shared-deps-src/kbn-ui-shared-deps-src.css\\" rel=\\"stylesheet\\"/>MockedFonts<link rel=\\"alternate icon\\" type=\\"image/png\\" href=\\"/ui/favicons/favicon.png\\"/><link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/ui/favicons/favicon.svg\\"/><meta name=\\"theme-color\\" content=\\"#ffffff\\"/><meta name=\\"color-scheme\\" content=\\"light dark\\"/></head><body><div data-test-subj=\\"promptPage\\" style=\\"min-block-size:max(460px, 100vh);padding-block-start:var(--euiFixedHeadersOffset, 0)\\" class=\\"euiPageTemplate eui-cjgvy1-euiPageOuter-row-grow\\"><main id=\\"EuiPageTemplateInner_generated-id\\" class=\\"eui-nq554q-euiPageInner\\"><section class=\\"eui-j6zf49-euiPageSection-grow-l-center-transparent\\"><div class=\\"eui-1oc2fb7-euiPageSection__content-l-center\\"><div class=\\"euiPanel euiPanel--plain euiEmptyPrompt eui-1is22ji-euiPanel-m-plain-hasShadow-euiEmptyPrompt-vertical\\"><div class=\\"euiEmptyPrompt__main eui-1s4ogs-euiEmptyPrompt__main-vertical-l\\"><div class=\\"euiEmptyPrompt__icon eui-1ysd0i8-euiEmptyPrompt__icon-vertical\\"><span data-euiicon-type=\\"warning\\" color=\\"danger\\"></span></div><div class=\\"euiEmptyPrompt__content eui-1cebog9-euiEmptyPrompt__content-vertical\\"><h2 class=\\"euiTitle eui-smz32e-euiTitle-m\\">We hit an authentication error</h2><div class=\\"euiSpacer euiSpacer--m eui-jv9za2-euiSpacer-m\\"></div><div class=\\"euiText eui-k2mw53-euiText-m-euiTextColor-subdued\\"><p>Try logging in again, and if the problem persists, contact your system administrator.</p></div><div class=\\"euiSpacer euiSpacer--l eui-p2o3x6-euiSpacer-l\\"></div><div class=\\"euiFlexGroup euiEmptyPrompt__actions eui-1rkti4c-euiFlexGroup-m-center-center-column-euiEmptyPrompt__actions-vertical\\"><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><a href=\\"/some/url?some-query=some-value#some-hash\\" rel=\\"noreferrer\\" class=\\"euiButton eui-4wl8yg-euiButtonDisplay-m-defaultMinWidth-fill-primary\\" data-test-subj=\\"logInButton\\"><span class=\\"eui-cf8eum-euiButtonDisplayContent\\">Log in</span></a></div></div></div></div></div></div></section></main></div></body></html>"`;
|
||||
|
||||
exports[`UnauthenticatedPage renders as expected with custom title 1`] = `"<html lang=\\"en\\"><head><title>My Company Name</title><style></style><style data-emotion=\\"eui \\"></style></style><link href=\\"/bundles/kbn-ui-shared-deps-src/kbn-ui-shared-deps-src.css\\" rel=\\"stylesheet\\"/>MockedFonts<link rel=\\"alternate icon\\" type=\\"image/png\\" href=\\"/ui/favicons/favicon.png\\"/><link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/ui/favicons/favicon.svg\\"/><meta name=\\"theme-color\\" content=\\"#ffffff\\"/><meta name=\\"color-scheme\\" content=\\"light dark\\"/></head><body><div data-test-subj=\\"promptPage\\" style=\\"min-block-size:max(460px, 100vh);padding-block-start:var(--euiFixedHeadersOffset, 0)\\" class=\\"euiPageTemplate eui-cjgvy1-euiPageOuter-row-grow\\"><main id=\\"EuiPageTemplateInner_generated-id\\" class=\\"eui-nq554q-euiPageInner\\"><section class=\\"eui-j6zf49-euiPageSection-grow-l-center-transparent\\"><div class=\\"eui-1oc2fb7-euiPageSection__content-l-center\\"><div class=\\"euiPanel euiPanel--plain euiEmptyPrompt eui-1is22ji-euiPanel-m-plain-hasShadow-euiEmptyPrompt-vertical\\"><div class=\\"euiEmptyPrompt__main eui-1s4ogs-euiEmptyPrompt__main-vertical-l\\"><div class=\\"euiEmptyPrompt__icon eui-1ysd0i8-euiEmptyPrompt__icon-vertical\\"><span data-euiicon-type=\\"warning\\" color=\\"danger\\"></span></div><div class=\\"euiEmptyPrompt__content eui-1cebog9-euiEmptyPrompt__content-vertical\\"><h2 class=\\"euiTitle eui-smz32e-euiTitle-m\\">We hit an authentication error</h2><div class=\\"euiSpacer euiSpacer--m eui-jv9za2-euiSpacer-m\\"></div><div class=\\"euiText eui-k2mw53-euiText-m-euiTextColor-subdued\\"><p>Try logging in again, and if the problem persists, contact your system administrator.</p></div><div class=\\"euiSpacer euiSpacer--l eui-p2o3x6-euiSpacer-l\\"></div><div class=\\"euiFlexGroup euiEmptyPrompt__actions eui-1rkti4c-euiFlexGroup-m-center-center-column-euiEmptyPrompt__actions-vertical\\"><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><a href=\\"/some/url?some-query=some-value#some-hash\\" rel=\\"noreferrer\\" class=\\"euiButton eui-1ew06m2-euiButtonDisplay-m-defaultMinWidth-fill-primary\\" data-test-subj=\\"logInButton\\"><span class=\\"eui-cf8eum-euiButtonDisplayContent\\">Log in</span></a></div></div></div></div></div></div></section></main></div></body></html>"`;
|
||||
exports[`UnauthenticatedPage renders as expected with custom title 1`] = `"<html lang=\\"en\\"><head><title>My Company Name</title><style></style><style data-emotion=\\"eui \\"></style></style><link href=\\"/bundles/kbn-ui-shared-deps-src/kbn-ui-shared-deps-src.css\\" rel=\\"stylesheet\\"/>MockedFonts<link rel=\\"alternate icon\\" type=\\"image/png\\" href=\\"/ui/favicons/favicon.png\\"/><link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/ui/favicons/favicon.svg\\"/><meta name=\\"theme-color\\" content=\\"#ffffff\\"/><meta name=\\"color-scheme\\" content=\\"light dark\\"/></head><body><div data-test-subj=\\"promptPage\\" style=\\"min-block-size:max(460px, 100vh);padding-block-start:var(--euiFixedHeadersOffset, 0)\\" class=\\"euiPageTemplate eui-cjgvy1-euiPageOuter-row-grow\\"><main id=\\"EuiPageTemplateInner_generated-id\\" class=\\"eui-nq554q-euiPageInner\\"><section class=\\"eui-j6zf49-euiPageSection-grow-l-center-transparent\\"><div class=\\"eui-1oc2fb7-euiPageSection__content-l-center\\"><div class=\\"euiPanel euiPanel--plain euiEmptyPrompt eui-1is22ji-euiPanel-m-plain-hasShadow-euiEmptyPrompt-vertical\\"><div class=\\"euiEmptyPrompt__main eui-1s4ogs-euiEmptyPrompt__main-vertical-l\\"><div class=\\"euiEmptyPrompt__icon eui-1ysd0i8-euiEmptyPrompt__icon-vertical\\"><span data-euiicon-type=\\"warning\\" color=\\"danger\\"></span></div><div class=\\"euiEmptyPrompt__content eui-1cebog9-euiEmptyPrompt__content-vertical\\"><h2 class=\\"euiTitle eui-smz32e-euiTitle-m\\">We hit an authentication error</h2><div class=\\"euiSpacer euiSpacer--m eui-jv9za2-euiSpacer-m\\"></div><div class=\\"euiText eui-k2mw53-euiText-m-euiTextColor-subdued\\"><p>Try logging in again, and if the problem persists, contact your system administrator.</p></div><div class=\\"euiSpacer euiSpacer--l eui-p2o3x6-euiSpacer-l\\"></div><div class=\\"euiFlexGroup euiEmptyPrompt__actions eui-1rkti4c-euiFlexGroup-m-center-center-column-euiEmptyPrompt__actions-vertical\\"><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><a href=\\"/some/url?some-query=some-value#some-hash\\" rel=\\"noreferrer\\" class=\\"euiButton eui-4wl8yg-euiButtonDisplay-m-defaultMinWidth-fill-primary\\" data-test-subj=\\"logInButton\\"><span class=\\"eui-cf8eum-euiButtonDisplayContent\\">Log in</span></a></div></div></div></div></div></div></section></main></div></body></html>"`;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`ResetSessionPage renders as expected 1`] = `"<html lang=\\"en\\"><head><title>Elastic</title><style></style><style data-emotion=\\"eui \\"></style></style><link href=\\"/bundles/kbn-ui-shared-deps-src/kbn-ui-shared-deps-src.css\\" rel=\\"stylesheet\\"/>MockedFonts<link rel=\\"alternate icon\\" type=\\"image/png\\" href=\\"/ui/favicons/favicon.png\\"/><link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/ui/favicons/favicon.svg\\"/><script src=\\"/mock-basepath/internal/security/reset_session_page.js\\"></script><meta name=\\"theme-color\\" content=\\"#ffffff\\"/><meta name=\\"color-scheme\\" content=\\"light dark\\"/></head><body><div data-test-subj=\\"promptPage\\" style=\\"min-block-size:max(460px, 100vh);padding-block-start:var(--euiFixedHeadersOffset, 0)\\" class=\\"euiPageTemplate eui-cjgvy1-euiPageOuter-row-grow\\"><main id=\\"EuiPageTemplateInner_generated-id\\" class=\\"eui-nq554q-euiPageInner\\"><section class=\\"eui-j6zf49-euiPageSection-grow-l-center-transparent\\"><div class=\\"eui-1oc2fb7-euiPageSection__content-l-center\\"><div class=\\"euiPanel euiPanel--plain euiEmptyPrompt eui-1is22ji-euiPanel-m-plain-hasShadow-euiEmptyPrompt-vertical\\"><div class=\\"euiEmptyPrompt__main eui-1s4ogs-euiEmptyPrompt__main-vertical-l\\"><div class=\\"euiEmptyPrompt__icon eui-1ysd0i8-euiEmptyPrompt__icon-vertical\\"><span data-euiicon-type=\\"warning\\" color=\\"danger\\"></span></div><div class=\\"euiEmptyPrompt__content eui-1cebog9-euiEmptyPrompt__content-vertical\\"><h2 class=\\"euiTitle eui-smz32e-euiTitle-m\\">You do not have permission to access the requested page</h2><div class=\\"euiSpacer euiSpacer--m eui-jv9za2-euiSpacer-m\\"></div><div class=\\"euiText eui-k2mw53-euiText-m-euiTextColor-subdued\\"><p>Either go back to the previous page or log in as a different user.</p></div><div class=\\"euiSpacer euiSpacer--l eui-p2o3x6-euiSpacer-l\\"></div><div class=\\"euiFlexGroup euiEmptyPrompt__actions eui-1rkti4c-euiFlexGroup-m-center-center-column-euiEmptyPrompt__actions-vertical\\"><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><a href=\\"/path/to/logout\\" rel=\\"noreferrer\\" class=\\"euiButton eui-1ew06m2-euiButtonDisplay-m-defaultMinWidth-fill-primary\\" data-test-subj=\\"ResetSessionButton\\"><span class=\\"eui-cf8eum-euiButtonDisplayContent\\">Log in as different user</span></a></div><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><button class=\\"euiButtonEmpty eui-vdbxne-euiButtonDisplay-euiButtonEmpty-m-empty-primary\\" type=\\"button\\" id=\\"goBackButton\\"><span class=\\"euiButtonEmpty__content eui-cf8eum-euiButtonDisplayContent\\"><span class=\\"eui-textTruncate euiButtonEmpty__text\\">Go back</span></span></button></div></div></div></div></div></div></section></main></div></body></html>"`;
|
||||
exports[`ResetSessionPage renders as expected 1`] = `"<html lang=\\"en\\"><head><title>Elastic</title><style></style><style data-emotion=\\"eui \\"></style></style><link href=\\"/bundles/kbn-ui-shared-deps-src/kbn-ui-shared-deps-src.css\\" rel=\\"stylesheet\\"/>MockedFonts<link rel=\\"alternate icon\\" type=\\"image/png\\" href=\\"/ui/favicons/favicon.png\\"/><link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/ui/favicons/favicon.svg\\"/><script src=\\"/mock-basepath/internal/security/reset_session_page.js\\"></script><meta name=\\"theme-color\\" content=\\"#ffffff\\"/><meta name=\\"color-scheme\\" content=\\"light dark\\"/></head><body><div data-test-subj=\\"promptPage\\" style=\\"min-block-size:max(460px, 100vh);padding-block-start:var(--euiFixedHeadersOffset, 0)\\" class=\\"euiPageTemplate eui-cjgvy1-euiPageOuter-row-grow\\"><main id=\\"EuiPageTemplateInner_generated-id\\" class=\\"eui-nq554q-euiPageInner\\"><section class=\\"eui-j6zf49-euiPageSection-grow-l-center-transparent\\"><div class=\\"eui-1oc2fb7-euiPageSection__content-l-center\\"><div class=\\"euiPanel euiPanel--plain euiEmptyPrompt eui-1is22ji-euiPanel-m-plain-hasShadow-euiEmptyPrompt-vertical\\"><div class=\\"euiEmptyPrompt__main eui-1s4ogs-euiEmptyPrompt__main-vertical-l\\"><div class=\\"euiEmptyPrompt__icon eui-1ysd0i8-euiEmptyPrompt__icon-vertical\\"><span data-euiicon-type=\\"warning\\" color=\\"danger\\"></span></div><div class=\\"euiEmptyPrompt__content eui-1cebog9-euiEmptyPrompt__content-vertical\\"><h2 class=\\"euiTitle eui-smz32e-euiTitle-m\\">You do not have permission to access the requested page</h2><div class=\\"euiSpacer euiSpacer--m eui-jv9za2-euiSpacer-m\\"></div><div class=\\"euiText eui-k2mw53-euiText-m-euiTextColor-subdued\\"><p>Either go back to the previous page or log in as a different user.</p></div><div class=\\"euiSpacer euiSpacer--l eui-p2o3x6-euiSpacer-l\\"></div><div class=\\"euiFlexGroup euiEmptyPrompt__actions eui-1rkti4c-euiFlexGroup-m-center-center-column-euiEmptyPrompt__actions-vertical\\"><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><a href=\\"/path/to/logout\\" rel=\\"noreferrer\\" class=\\"euiButton eui-4wl8yg-euiButtonDisplay-m-defaultMinWidth-fill-primary\\" data-test-subj=\\"ResetSessionButton\\"><span class=\\"eui-cf8eum-euiButtonDisplayContent\\">Log in as different user</span></a></div><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><button class=\\"euiButtonEmpty eui-7vyy05-euiButtonDisplay-euiButtonEmpty-m-empty-primary\\" type=\\"button\\" id=\\"goBackButton\\"><span class=\\"euiButtonEmpty__content eui-cf8eum-euiButtonDisplayContent\\"><span class=\\"eui-textTruncate euiButtonEmpty__text\\">Go back</span></span></button></div></div></div></div></div></div></section></main></div></body></html>"`;
|
||||
|
||||
exports[`ResetSessionPage renders as expected with custom page title 1`] = `"<html lang=\\"en\\"><head><title>My Company Name</title><style></style><style data-emotion=\\"eui \\"></style></style><link href=\\"/bundles/kbn-ui-shared-deps-src/kbn-ui-shared-deps-src.css\\" rel=\\"stylesheet\\"/>MockedFonts<link rel=\\"alternate icon\\" type=\\"image/png\\" href=\\"/ui/favicons/favicon.png\\"/><link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/ui/favicons/favicon.svg\\"/><script src=\\"/mock-basepath/internal/security/reset_session_page.js\\"></script><meta name=\\"theme-color\\" content=\\"#ffffff\\"/><meta name=\\"color-scheme\\" content=\\"light dark\\"/></head><body><div data-test-subj=\\"promptPage\\" style=\\"min-block-size:max(460px, 100vh);padding-block-start:var(--euiFixedHeadersOffset, 0)\\" class=\\"euiPageTemplate eui-cjgvy1-euiPageOuter-row-grow\\"><main id=\\"EuiPageTemplateInner_generated-id\\" class=\\"eui-nq554q-euiPageInner\\"><section class=\\"eui-j6zf49-euiPageSection-grow-l-center-transparent\\"><div class=\\"eui-1oc2fb7-euiPageSection__content-l-center\\"><div class=\\"euiPanel euiPanel--plain euiEmptyPrompt eui-1is22ji-euiPanel-m-plain-hasShadow-euiEmptyPrompt-vertical\\"><div class=\\"euiEmptyPrompt__main eui-1s4ogs-euiEmptyPrompt__main-vertical-l\\"><div class=\\"euiEmptyPrompt__icon eui-1ysd0i8-euiEmptyPrompt__icon-vertical\\"><span data-euiicon-type=\\"warning\\" color=\\"danger\\"></span></div><div class=\\"euiEmptyPrompt__content eui-1cebog9-euiEmptyPrompt__content-vertical\\"><h2 class=\\"euiTitle eui-smz32e-euiTitle-m\\">You do not have permission to access the requested page</h2><div class=\\"euiSpacer euiSpacer--m eui-jv9za2-euiSpacer-m\\"></div><div class=\\"euiText eui-k2mw53-euiText-m-euiTextColor-subdued\\"><p>Either go back to the previous page or log in as a different user.</p></div><div class=\\"euiSpacer euiSpacer--l eui-p2o3x6-euiSpacer-l\\"></div><div class=\\"euiFlexGroup euiEmptyPrompt__actions eui-1rkti4c-euiFlexGroup-m-center-center-column-euiEmptyPrompt__actions-vertical\\"><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><a href=\\"/path/to/logout\\" rel=\\"noreferrer\\" class=\\"euiButton eui-1ew06m2-euiButtonDisplay-m-defaultMinWidth-fill-primary\\" data-test-subj=\\"ResetSessionButton\\"><span class=\\"eui-cf8eum-euiButtonDisplayContent\\">Log in as different user</span></a></div><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><button class=\\"euiButtonEmpty eui-vdbxne-euiButtonDisplay-euiButtonEmpty-m-empty-primary\\" type=\\"button\\" id=\\"goBackButton\\"><span class=\\"euiButtonEmpty__content eui-cf8eum-euiButtonDisplayContent\\"><span class=\\"eui-textTruncate euiButtonEmpty__text\\">Go back</span></span></button></div></div></div></div></div></div></section></main></div></body></html>"`;
|
||||
exports[`ResetSessionPage renders as expected with custom page title 1`] = `"<html lang=\\"en\\"><head><title>My Company Name</title><style></style><style data-emotion=\\"eui \\"></style></style><link href=\\"/bundles/kbn-ui-shared-deps-src/kbn-ui-shared-deps-src.css\\" rel=\\"stylesheet\\"/>MockedFonts<link rel=\\"alternate icon\\" type=\\"image/png\\" href=\\"/ui/favicons/favicon.png\\"/><link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/ui/favicons/favicon.svg\\"/><script src=\\"/mock-basepath/internal/security/reset_session_page.js\\"></script><meta name=\\"theme-color\\" content=\\"#ffffff\\"/><meta name=\\"color-scheme\\" content=\\"light dark\\"/></head><body><div data-test-subj=\\"promptPage\\" style=\\"min-block-size:max(460px, 100vh);padding-block-start:var(--euiFixedHeadersOffset, 0)\\" class=\\"euiPageTemplate eui-cjgvy1-euiPageOuter-row-grow\\"><main id=\\"EuiPageTemplateInner_generated-id\\" class=\\"eui-nq554q-euiPageInner\\"><section class=\\"eui-j6zf49-euiPageSection-grow-l-center-transparent\\"><div class=\\"eui-1oc2fb7-euiPageSection__content-l-center\\"><div class=\\"euiPanel euiPanel--plain euiEmptyPrompt eui-1is22ji-euiPanel-m-plain-hasShadow-euiEmptyPrompt-vertical\\"><div class=\\"euiEmptyPrompt__main eui-1s4ogs-euiEmptyPrompt__main-vertical-l\\"><div class=\\"euiEmptyPrompt__icon eui-1ysd0i8-euiEmptyPrompt__icon-vertical\\"><span data-euiicon-type=\\"warning\\" color=\\"danger\\"></span></div><div class=\\"euiEmptyPrompt__content eui-1cebog9-euiEmptyPrompt__content-vertical\\"><h2 class=\\"euiTitle eui-smz32e-euiTitle-m\\">You do not have permission to access the requested page</h2><div class=\\"euiSpacer euiSpacer--m eui-jv9za2-euiSpacer-m\\"></div><div class=\\"euiText eui-k2mw53-euiText-m-euiTextColor-subdued\\"><p>Either go back to the previous page or log in as a different user.</p></div><div class=\\"euiSpacer euiSpacer--l eui-p2o3x6-euiSpacer-l\\"></div><div class=\\"euiFlexGroup euiEmptyPrompt__actions eui-1rkti4c-euiFlexGroup-m-center-center-column-euiEmptyPrompt__actions-vertical\\"><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><a href=\\"/path/to/logout\\" rel=\\"noreferrer\\" class=\\"euiButton eui-4wl8yg-euiButtonDisplay-m-defaultMinWidth-fill-primary\\" data-test-subj=\\"ResetSessionButton\\"><span class=\\"eui-cf8eum-euiButtonDisplayContent\\">Log in as different user</span></a></div><div class=\\"euiFlexItem eui-kpsrin-euiFlexItem-growZero\\"><button class=\\"euiButtonEmpty eui-7vyy05-euiButtonDisplay-euiButtonEmpty-m-empty-primary\\" type=\\"button\\" id=\\"goBackButton\\"><span class=\\"euiButtonEmpty__content eui-cf8eum-euiButtonDisplayContent\\"><span class=\\"eui-textTruncate euiButtonEmpty__text\\">Go back</span></span></button></div></div></div></div></div></div></section></main></div></body></html>"`;
|
||||
|
|
|
@ -17,7 +17,7 @@ import { useInvestigationGuide } from '../../shared/hooks/use_investigation_guid
|
|||
jest.mock('../../shared/hooks/use_investigation_guide');
|
||||
|
||||
const NO_DATA_TEXT =
|
||||
"There's no investigation guide for this rule. Edit the rule's settingsExternal link(opens in a new tab or window) to add one.";
|
||||
"There's no investigation guide for this rule. Edit the rule's settings(external, opens in a new tab or window) to add one.";
|
||||
const PREVIEW_MESSAGE = 'Investigation guide is not available in alert preview.';
|
||||
|
||||
const renderInvestigationGuide = (context: DocumentDetailsContext = mockContextValue) => (
|
||||
|
|
|
@ -59,7 +59,7 @@ jest.mock('../../../../common/lib/kibana', () => {
|
|||
});
|
||||
|
||||
const NO_DATA_MESSAGE =
|
||||
"There are no response actions defined for this event. To add some, edit the rule's settings and set up response actionsExternal link(opens in a new tab or window).";
|
||||
"There are no response actions defined for this event. To add some, edit the rule's settings and set up response actions(external, opens in a new tab or window).";
|
||||
const PREVIEW_MESSAGE = 'Response is not available in alert preview.';
|
||||
|
||||
const defaultContextValue = {
|
||||
|
|
|
@ -31,7 +31,7 @@ jest.mock('../../../../common/hooks/use_license');
|
|||
jest.mock('../../../../sourcerer/containers');
|
||||
|
||||
const NO_DATA_MESSAGE =
|
||||
'You can only view Linux session details if you’ve enabled the Include session data setting in your Elastic Defend integration policy. Refer to Enable Session View dataExternal link(opens in a new tab or window) for more information.';
|
||||
'You can only view Linux session details if you’ve enabled the Include session data setting in your Elastic Defend integration policy. Refer to Enable Session View data(external, opens in a new tab or window) for more information.';
|
||||
|
||||
const UPSELL_TEXT = 'This feature requires an Enterprise subscription';
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ jest.mock('@kbn/kibana-react-plugin/public', () => {
|
|||
});
|
||||
|
||||
const NO_ANALYZER_MESSAGE =
|
||||
'You can only visualize events triggered by hosts configured with the Elastic Defend integration or any sysmon data from winlogbeat. Refer to Visual event analyzerExternal link(opens in a new tab or window) for more information.';
|
||||
'You can only visualize events triggered by hosts configured with the Elastic Defend integration or any sysmon data from winlogbeat. Refer to Visual event analyzer(external, opens in a new tab or window) for more information.';
|
||||
|
||||
const renderAnalyzerPreview = (context = mockContextValue) =>
|
||||
render(
|
||||
|
|
|
@ -40,7 +40,7 @@ jest.mock('@kbn/kibana-react-plugin/public', () => {
|
|||
});
|
||||
|
||||
const NO_DATA_MESSAGE =
|
||||
'You can only view Linux session details if you’ve enabled the Include session data setting in your Elastic Defend integration policy. Refer to Enable Session View dataExternal link(opens in a new tab or window) for more information.';
|
||||
'You can only view Linux session details if you’ve enabled the Include session data setting in your Elastic Defend integration policy. Refer to Enable Session View data(external, opens in a new tab or window) for more information.';
|
||||
|
||||
const UPSELL_TEXT = 'This feature requires an Enterprise subscription';
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ import { SESSION_VIEW_UPSELL_TEST_ID, SESSION_VIEW_NO_DATA_TEST_ID } from './tes
|
|||
import { SessionViewNoDataMessage } from './session_view_no_data_message';
|
||||
|
||||
const NO_DATA_MESSAGE =
|
||||
'You can only view Linux session details if you’ve enabled the Include session data setting in your Elastic Defend integration policy. Refer to Enable Session View dataExternal link(opens in a new tab or window) for more information.';
|
||||
'You can only view Linux session details if you’ve enabled the Include session data setting in your Elastic Defend integration policy. Refer to Enable Session View data(external, opens in a new tab or window) for more information.';
|
||||
|
||||
const UPSELL_TEXT = 'This feature requires an Enterprise subscription';
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ describe('When rendering the command list (help output)', () => {
|
|||
expect(renderResult.getByTestId('test-commandList-helpfulTips')).toHaveTextContent(
|
||||
'Helpful tips:You can enter consecutive response actions — no need to wait for previous ' +
|
||||
'actions to complete.Leaving the response console does not terminate any actions that have ' +
|
||||
'been submitted.Learn moreExternal link(opens in a new tab or window) about response actions ' +
|
||||
'been submitted.Learn more(external, opens in a new tab or window) about response actions ' +
|
||||
'and using the console.'
|
||||
);
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ describe('Policy form RelatedDetectionRulesCallout component', () => {
|
|||
|
||||
expect(renderResult.getByTestId('test')).toHaveTextContent(
|
||||
exactMatchText(
|
||||
'The Endpoint Security detection rule is enabled automatically with Elastic Defend. This rule must remain enabled to receive Endpoint alerts. Learn MoreExternal link(opens in a new tab or window).'
|
||||
'The Endpoint Security detection rule is enabled automatically with Elastic Defend. This rule must remain enabled to receive Endpoint alerts. Learn More(external, opens in a new tab or window).'
|
||||
)
|
||||
);
|
||||
});
|
||||
|
|
|
@ -41,7 +41,7 @@ describe('Policy form SettingLockedCard component', () => {
|
|||
'To turn on this protection, you must upgrade your license to Platinum, start a free 30-day ' +
|
||||
'trial, or spin up a ' +
|
||||
'cloud deployment' +
|
||||
'External link(opens in a new tab or window) ' +
|
||||
'(external, opens in a new tab or window) ' +
|
||||
'on AWS, GCP, or Azure.Platinum'
|
||||
)
|
||||
);
|
||||
|
|
|
@ -276,13 +276,12 @@ exports[`Field Renderers #whoisRenderer it renders correctly against snapshot 1`
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</span>
|
||||
|
|
|
@ -1012,13 +1012,12 @@ tr:hover .c3:focus::before {
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
|
@ -1755,13 +1754,12 @@ tr:hover .c3:focus::before {
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
|
@ -2135,13 +2133,12 @@ tr:hover .c3:focus::before {
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</span>
|
||||
|
@ -2221,13 +2218,12 @@ tr:hover .c3:focus::before {
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</span>
|
||||
|
@ -2307,13 +2303,12 @@ tr:hover .c3:focus::before {
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</span>
|
||||
|
|
|
@ -1202,13 +1202,12 @@ tr:hover .c5:focus::before {
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
|
@ -2106,13 +2105,12 @@ tr:hover .c5:focus::before {
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
|
@ -2556,13 +2554,12 @@ tr:hover .c5:focus::before {
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</span>
|
||||
|
@ -2652,13 +2649,12 @@ tr:hover .c5:focus::before {
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</span>
|
||||
|
@ -2748,13 +2744,12 @@ tr:hover .c5:focus::before {
|
|||
<span
|
||||
class="emotion-EuiExternalLinkIcon"
|
||||
data-euiicon-type="popout"
|
||||
>
|
||||
External link
|
||||
</span>
|
||||
role="presentation"
|
||||
/>
|
||||
<span
|
||||
class="emotion-euiScreenReaderOnly"
|
||||
>
|
||||
(opens in a new tab or window)
|
||||
(external, opens in a new tab or window)
|
||||
</span>
|
||||
</a>
|
||||
</span>
|
||||
|
|
|
@ -46,6 +46,9 @@ const defaultProps: CustomTimelineDataGridBodyProps = {
|
|||
enabledRowRenderers: [],
|
||||
setCustomGridBodyProps: jest.fn(),
|
||||
visibleColumns: mockVisibleColumns,
|
||||
headerRow: <></>,
|
||||
footerRow: null,
|
||||
gridWidth: 0,
|
||||
};
|
||||
|
||||
const renderTestComponents = (props?: CustomTimelineDataGridBodyProps) => {
|
||||
|
|
|
@ -42,8 +42,17 @@ const DEFAULT_UDT_ROW_HEIGHT = 34;
|
|||
* */
|
||||
export const CustomTimelineDataGridBody: FC<CustomTimelineDataGridBodyProps> = memo(
|
||||
function CustomTimelineDataGridBody(props) {
|
||||
const { Cell, visibleColumns, visibleRowData, rows, rowHeight, enabledRowRenderers, refetch } =
|
||||
props;
|
||||
const {
|
||||
Cell,
|
||||
headerRow,
|
||||
footerRow,
|
||||
visibleColumns,
|
||||
visibleRowData,
|
||||
rows,
|
||||
rowHeight,
|
||||
enabledRowRenderers,
|
||||
refetch,
|
||||
} = props;
|
||||
|
||||
const visibleRows = useMemo(
|
||||
() => (rows ?? []).slice(visibleRowData.startRow, visibleRowData.endRow),
|
||||
|
@ -52,6 +61,7 @@ export const CustomTimelineDataGridBody: FC<CustomTimelineDataGridBodyProps> = m
|
|||
|
||||
return (
|
||||
<>
|
||||
{headerRow}
|
||||
{visibleRows.map((row, rowIndex) => {
|
||||
return (
|
||||
<CustomDataGridSingleRow
|
||||
|
@ -66,6 +76,7 @@ export const CustomTimelineDataGridBody: FC<CustomTimelineDataGridBodyProps> = m
|
|||
/>
|
||||
);
|
||||
})}
|
||||
{footerRow}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -331,15 +331,21 @@ export const TimelineDataTableComponent: React.FC<DataTableProps> = memo(
|
|||
visibleRowData,
|
||||
visibleColumns,
|
||||
setCustomGridBodyProps,
|
||||
gridWidth,
|
||||
headerRow,
|
||||
footerRow,
|
||||
}: EuiDataGridCustomBodyProps) => (
|
||||
<CustomTimelineDataGridBody
|
||||
rows={tableRows}
|
||||
Cell={Cell}
|
||||
visibleColumns={visibleColumns}
|
||||
visibleRowData={visibleRowData}
|
||||
headerRow={headerRow}
|
||||
footerRow={footerRow}
|
||||
setCustomGridBodyProps={setCustomGridBodyProps}
|
||||
enabledRowRenderers={enabledRowRenderers}
|
||||
rowHeight={rowHeight}
|
||||
gridWidth={gridWidth}
|
||||
refetch={refetch}
|
||||
/>
|
||||
),
|
||||
|
|
|
@ -720,7 +720,6 @@
|
|||
"core.euiDisplaySelector.rowHeightLabel": "Hauteur de la ligne",
|
||||
"core.euiDualRange.sliderScreenReaderInstructions": "Vous êtes dans un curseur de plage personnalisé. Utilisez les flèches vers le haut et vers le bas pour modifier la valeur minimale. Appuyez sur Tabulation pour interagir avec la valeur maximale.",
|
||||
"core.euiErrorBoundary.error": "Erreur",
|
||||
"core.euiExternalLinkIcon.ariaLabel": "Lien externe",
|
||||
"core.euiExternalLinkIcon.newTarget.screenReaderOnlyText": "(s’ouvre dans un nouvel onglet ou une nouvelle fenêtre)",
|
||||
"core.euiFieldPassword.maskPassword": "Masquer le mot de passe",
|
||||
"core.euiFieldPassword.showPassword": "Afficher le mot de passe en texte brut. Remarque : votre mot de passe sera visible à l'écran.",
|
||||
|
|
|
@ -721,7 +721,6 @@
|
|||
"core.euiDisplaySelector.rowHeightLabel": "行高さ",
|
||||
"core.euiDualRange.sliderScreenReaderInstructions": "カスタム範囲スライダーを操作しています。上下矢印キーを使用すると、最小値を変更できます。Tabを押すと、最大値を操作できます。",
|
||||
"core.euiErrorBoundary.error": "エラー",
|
||||
"core.euiExternalLinkIcon.ariaLabel": "外部リンク",
|
||||
"core.euiExternalLinkIcon.newTarget.screenReaderOnlyText": "(新しいタブまたはウィンドウで開く)",
|
||||
"core.euiFieldPassword.maskPassword": "パスワードをマスク",
|
||||
"core.euiFieldPassword.showPassword": "プレーンテキストとしてパスワードを表示します。注記:パスワードは画面上に見えるように表示されます。",
|
||||
|
|
|
@ -720,7 +720,6 @@
|
|||
"core.euiDisplaySelector.rowHeightLabel": "行高",
|
||||
"core.euiDualRange.sliderScreenReaderInstructions": "您正使用定制范围滑块。使用向上和向下箭头键可更改最小值。按 Tab 键与最大值进行交互。",
|
||||
"core.euiErrorBoundary.error": "错误",
|
||||
"core.euiExternalLinkIcon.ariaLabel": "外部链接",
|
||||
"core.euiExternalLinkIcon.newTarget.screenReaderOnlyText": "(在新选项卡或窗口中打开)",
|
||||
"core.euiFieldPassword.maskPassword": "屏蔽密码",
|
||||
"core.euiFieldPassword.showPassword": "将密码显示为纯文本。注意:这会将您的密码暴露在屏幕上。",
|
||||
|
|
|
@ -115,11 +115,11 @@ describe('health check', () => {
|
|||
const [action] = queryAllByText(/Learn more/i);
|
||||
|
||||
expect(description.textContent).toMatchInlineSnapshot(
|
||||
`"You must enable API keys to use Alerting. Learn more.External link(opens in a new tab or window)"`
|
||||
`"You must enable API keys to use Alerting. Learn more.(external, opens in a new tab or window)"`
|
||||
);
|
||||
|
||||
expect(action.textContent).toMatchInlineSnapshot(
|
||||
`"Learn more.External link(opens in a new tab or window)"`
|
||||
`"Learn more.(external, opens in a new tab or window)"`
|
||||
);
|
||||
|
||||
expect(action.getAttribute('href')).toMatchInlineSnapshot(
|
||||
|
@ -153,12 +153,12 @@ describe('health check', () => {
|
|||
|
||||
const description = queryByRole(/banner/i);
|
||||
expect(description!.textContent).toMatchInlineSnapshot(
|
||||
`"You must configure an encryption key to use Alerting. Learn more.External link(opens in a new tab or window)"`
|
||||
`"You must configure an encryption key to use Alerting. Learn more.(external, opens in a new tab or window)"`
|
||||
);
|
||||
|
||||
const action = queryByText(/Learn/i);
|
||||
expect(action!.textContent).toMatchInlineSnapshot(
|
||||
`"Learn more.External link(opens in a new tab or window)"`
|
||||
`"Learn more.(external, opens in a new tab or window)"`
|
||||
);
|
||||
expect(action!.getAttribute('href')).toMatchInlineSnapshot(
|
||||
`"https://www.elastic.co/guide/en/kibana/mocked-test-branch/alert-action-settings-kb.html#general-alert-action-settings"`
|
||||
|
@ -193,12 +193,12 @@ describe('health check', () => {
|
|||
const description = queryByText(/You must enable/i);
|
||||
|
||||
expect(description!.textContent).toMatchInlineSnapshot(
|
||||
`"You must enable API keys and configure an encryption key to use Alerting. Learn more.External link(opens in a new tab or window)"`
|
||||
`"You must enable API keys and configure an encryption key to use Alerting. Learn more.(external, opens in a new tab or window)"`
|
||||
);
|
||||
|
||||
const action = queryByText(/Learn/i);
|
||||
expect(action!.textContent).toMatchInlineSnapshot(
|
||||
`"Learn more.External link(opens in a new tab or window)"`
|
||||
`"Learn more.(external, opens in a new tab or window)"`
|
||||
);
|
||||
expect(action!.getAttribute('href')).toMatchInlineSnapshot(
|
||||
`"https://www.elastic.co/guide/en/kibana/mocked-test-branch/alerting-setup.html#alerting-prerequisites"`
|
||||
|
|
|
@ -683,17 +683,21 @@ const AlertsTable: React.FunctionComponent<AlertsTableProps> = memo((props: Aler
|
|||
}, [props.gridStyle, mergedGridStyle]);
|
||||
|
||||
const renderCustomGridBody = useCallback<NonNullable<EuiDataGridProps['renderCustomGridBody']>>(
|
||||
({ visibleColumns: _visibleColumns, Cell }) => (
|
||||
<CustomGridBody
|
||||
visibleColumns={_visibleColumns}
|
||||
Cell={Cell}
|
||||
actualGridStyle={actualGridStyle}
|
||||
alertsData={oldAlertsData}
|
||||
pageIndex={pageIndex}
|
||||
pageSize={pageSize}
|
||||
isLoading={isLoading}
|
||||
stripes={props.gridStyle?.stripes}
|
||||
/>
|
||||
({ visibleColumns: _visibleColumns, Cell, headerRow, footerRow }) => (
|
||||
<>
|
||||
{headerRow}
|
||||
<CustomGridBody
|
||||
visibleColumns={_visibleColumns}
|
||||
Cell={Cell}
|
||||
actualGridStyle={actualGridStyle}
|
||||
alertsData={oldAlertsData}
|
||||
pageIndex={pageIndex}
|
||||
pageSize={pageSize}
|
||||
isLoading={isLoading}
|
||||
stripes={props.gridStyle?.stripes}
|
||||
/>
|
||||
{footerRow}
|
||||
</>
|
||||
),
|
||||
[actualGridStyle, oldAlertsData, pageIndex, pageSize, isLoading, props.gridStyle?.stripes]
|
||||
);
|
||||
|
|
|
@ -45,7 +45,7 @@ describe(
|
|||
|
||||
cy.get(DOCUMENT_DETAILS_FLYOUT_RESPONSE_EMPTY).and(
|
||||
'contain.text',
|
||||
"There are no response actions defined for this event. To add some, edit the rule's settings and set up response actions(opens in a new tab or window)."
|
||||
"There are no response actions defined for this event. To add some, edit the rule's settings and set up response actions(external, opens in a new tab or window)."
|
||||
);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -163,7 +163,7 @@ describe(
|
|||
|
||||
cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_SESSION_PREVIEW_CONTAINER).should(
|
||||
'contain.text',
|
||||
'You can only view Linux session details if you’ve enabled the Include session data setting in your Elastic Defend integration policy. Refer to Enable Session View data(opens in a new tab or window) for more information.'
|
||||
'You can only view Linux session details if you’ve enabled the Include session data setting in your Elastic Defend integration policy. Refer to Enable Session View data(external, opens in a new tab or window) for more information.'
|
||||
);
|
||||
|
||||
cy.log('analyzer graph preview');
|
||||
|
|
|
@ -72,7 +72,9 @@ describe('Timeline notes tab', { tags: ['@ess', '@serverless'] }, () => {
|
|||
|
||||
it('should be able to render a link', () => {
|
||||
addNotesToTimeline(`[${author}](${link})`);
|
||||
cy.get(NOTES_LINK).last().should('have.text', `${author}(opens in a new tab or window)`);
|
||||
cy.get(NOTES_LINK)
|
||||
.last()
|
||||
.should('have.text', `${author}(external, opens in a new tab or window)`);
|
||||
cy.get(NOTES_LINK).last().click();
|
||||
});
|
||||
|
||||
|
|
|
@ -138,8 +138,7 @@ export const TIMELINE_FIELD = (field: string) => {
|
|||
return `[data-test-subj="formatted-field-${field}"]`;
|
||||
};
|
||||
|
||||
export const removeExternalLinkText = (str: string) =>
|
||||
str.replace(/\(opens in a new tab or window\)/g, '');
|
||||
export const removeExternalLinkText = (str: string) => str.replace(/\(external[^)]*\)/g, '');
|
||||
|
||||
export const DEFINE_RULE_PANEL_PROGRESS =
|
||||
'[data-test-subj="defineRule"] [data-test-subj="stepPanelProgress"]';
|
||||
|
|
|
@ -1753,10 +1753,10 @@
|
|||
resolved "https://registry.yarnpkg.com/@elastic/eslint-plugin-eui/-/eslint-plugin-eui-0.0.2.tgz#56b9ef03984a05cc213772ae3713ea8ef47b0314"
|
||||
integrity sha512-IoxURM5zraoQ7C8f+mJb9HYSENiZGgRVcG4tLQxE61yHNNRDXtGDWTZh8N1KIHcsqN1CEPETjuzBXkJYF/fDiQ==
|
||||
|
||||
"@elastic/eui@96.1.0":
|
||||
version "96.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-96.1.0.tgz#cd75f2a7a2ca07df6fb8f9af985dff3f05172fb6"
|
||||
integrity sha512-LmB92xr704Dfth9UnxCOm4b63lghb/7svXsnd0zcbSQA/BPqktUm1evZjWYIWFIek5D4JI4dmM+ygXLWdKSM+Q==
|
||||
"@elastic/eui@97.0.0":
|
||||
version "97.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-97.0.0.tgz#b7828b8818de1328e47b4c47024d8455a5795f23"
|
||||
integrity sha512-ha7oer/0ou0MnZMgwZzqKE97tx/IPhQtb04nNLZvwOiBAH+ANtUqohYSM/3VxLuJT13cxbsLC2CLT0Ktcibo4w==
|
||||
dependencies:
|
||||
"@hello-pangea/dnd" "^16.6.0"
|
||||
"@types/lodash" "^4.14.202"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue