diff --git a/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/components/table/table.test.tsx b/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/components/table/table.test.tsx index b122155d8c93..f3079155f7eb 100644 --- a/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/components/table/table.test.tsx +++ b/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/components/table/table.test.tsx @@ -134,7 +134,7 @@ describe('Background Search Session Management Table', () => { expect(table.find('tbody td').map((node) => node.text())).toMatchInlineSnapshot(` Array [ "App", - "Namevery background search ", + "Namevery background search ", "# Searches0", "StatusExpired", "Created2 Dec, 2020, 00:19:32", diff --git a/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/lib/get_columns.test.tsx b/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/lib/get_columns.test.tsx index f46ded96d877..4764e273e5a6 100644 --- a/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/lib/get_columns.test.tsx +++ b/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/lib/get_columns.test.tsx @@ -161,6 +161,70 @@ describe('Search Sessions Management table column factory', () => { expect(name.text()).toBe('Cool mock session'); }); + + describe('old version warning', () => { + const currentKibanaVersion = '7.14.0'; + const olderKibanaVersion = '7.13.0'; + let hasRenderedVersionWarning: (partialSession: Partial) => boolean; + beforeEach(() => { + const [, nameColumn] = getColumns( + mockCoreStart, + mockPluginsSetup, + api, + mockConfig, + tz, + handleAction, + currentKibanaVersion + ) as Array>; + + hasRenderedVersionWarning = (partialSession: Partial): boolean => { + const session: UISession = { + ...mockSession, + ...partialSession, + }; + const node = mount( + nameColumn.render!(session.name, session) as ReactElement + ).getDOMNode(); + return !!node.querySelector('[data-test-subj="versionIncompatibleWarningTestSubj"]'); + }; + }); + + test("don't render warning for the same version when can restore", () => { + expect( + hasRenderedVersionWarning({ + version: currentKibanaVersion, + status: SearchSessionStatus.COMPLETE, + }) + ).toBe(false); + }); + + test("don't render warning for the same version when can't restore", () => { + expect( + hasRenderedVersionWarning({ + version: currentKibanaVersion, + status: SearchSessionStatus.EXPIRED, + }) + ).toBe(false); + }); + + test('render a warning for a different version when can restore', () => { + expect( + hasRenderedVersionWarning({ + version: olderKibanaVersion, + status: SearchSessionStatus.COMPLETE, + }) + ).toBe(true); + }); + + test("don't render a warning for a different version when can't restore", () => { + expect( + hasRenderedVersionWarning({ + version: olderKibanaVersion, + status: SearchSessionStatus.EXPIRED, + }) + ).toBe(false); + }); + }); }); // Num of searches column diff --git a/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/lib/get_columns.tsx b/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/lib/get_columns.tsx index 9583fc4b843a..865a2c975474 100644 --- a/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/lib/get_columns.tsx +++ b/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/lib/get_columns.tsx @@ -103,12 +103,18 @@ export const getColumns = ( /> ); + + // show version warning only if: + // 1. the session was created in a different version of Kibana + // AND + // 2. if still can restore this session: it has IN_PROGRESS or COMPLETE status. const versionIncompatibleWarning = - isRestorable && version === kibanaVersion ? null : ( + isRestorable && version !== kibanaVersion ? ( <> {' '} - ); + ) : null; + return ( {/* eslint-disable-next-line @elastic/eui/href-or-on-click */}