Unskip Search Sessions Management UI test (#90110)

* Unskip Search Sessions Management UI test

* more logging

* logging

* ci test

* skip reload test

* add tm task to archives used by dependent tests

* --wip-- [skip ci]

* revert jest affecting changes

* fix search sessions archive

* add pagination test

* test organize

* log cleanup

* fix async in tests

* remove obsolete test

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Tim Sullivan 2021-02-19 10:28:50 -07:00 committed by GitHub
parent 10b1fddf35
commit d31119c204
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 455 additions and 273 deletions

View file

@ -7,3 +7,5 @@
export * from './status';
export * from './types';
export const SEARCH_SESSIONS_TABLE_ID = 'searchSessionsMgmtUiTable';

View file

@ -9,11 +9,12 @@ import { EuiButton, EuiInMemoryTable, EuiSearchBarProps } from '@elastic/eui';
import { FormattedMessage } from '@kbn/i18n/react';
import { CoreStart } from 'kibana/public';
import moment from 'moment';
import React, { useCallback, useMemo, useRef, useEffect, useState } from 'react';
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
import useDebounce from 'react-use/lib/useDebounce';
import useInterval from 'react-use/lib/useInterval';
import { TableText } from '../';
import { IManagementSectionsPluginsSetup, SessionsConfigSchema } from '../..';
import { SEARCH_SESSIONS_TABLE_ID } from '../../../../../common/search';
import { SearchSessionsMgmtAPI } from '../../lib/api';
import { getColumns } from '../../lib/get_columns';
import { UISession } from '../../types';
@ -21,8 +22,6 @@ import { OnActionComplete } from '../actions';
import { getAppFilter } from './app_filter';
import { getStatusFilter } from './status_filter';
const TABLE_ID = 'searchSessionsMgmtTable';
interface Props {
core: CoreStart;
api: SearchSessionsMgmtAPI;
@ -107,8 +106,8 @@ export function SearchSessionsMgmtTable({ core, api, timezone, config, plugins,
return (
<EuiInMemoryTable<UISession>
{...props}
id={TABLE_ID}
data-test-subj={TABLE_ID}
id={SEARCH_SESSIONS_TABLE_ID}
data-test-subj={SEARCH_SESSIONS_TABLE_ID}
rowProps={() => ({
'data-test-subj': 'searchSessionsRow',
})}

View file

@ -243,3 +243,34 @@
}
}
{
"type": "doc",
"value": {
"id": "task:data_enhanced_search_sessions_monitor",
"index": ".kibana_task_manager_1",
"source": {
"references": [],
"task": {
"attempts": 0,
"ownerId": null,
"params": "{}",
"retryAt": "2020-11-30T15:43:39.626Z",
"runAt": "2020-11-30T15:43:08.277Z",
"scheduledAt": "2020-11-30T15:43:08.277Z",
"retryAt": null,
"schedule": {
"interval": "3s"
},
"scope": [
"testing"
],
"startedAt": null,
"state": "{}",
"status": "idle",
"taskType": "search_sessions_monitor"
},
"type": "task",
"updated_at": "2020-11-30T15:43:08.277Z"
}
}
}

View file

@ -242,3 +242,93 @@
}
}
}
{
"type": "index",
"value": {
"aliases": {
".kibana_task_manager": {
}
},
"index": ".kibana_task_manager_1",
"mappings": {
"dynamic": "strict",
"properties": {
"references": {
"properties": {
"id": {
"type": "keyword"
},
"name": {
"type": "keyword"
},
"type": {
"type": "keyword"
}
},
"type": "nested"
},
"task": {
"properties": {
"attempts": {
"type": "integer"
},
"ownerId": {
"type": "keyword"
},
"params": {
"type": "text"
},
"retryAt": {
"type": "date"
},
"runAt": {
"type": "date"
},
"schedule": {
"properties": {
"interval": {
"type": "keyword"
}
}
},
"scheduledAt": {
"type": "date"
},
"scope": {
"type": "keyword"
},
"startedAt": {
"type": "date"
},
"state": {
"type": "text"
},
"status": {
"type": "keyword"
},
"taskType": {
"type": "keyword"
},
"user": {
"type": "keyword"
}
}
},
"type": {
"type": "keyword"
},
"updated_at": {
"type": "date"
}
}
},
"settings": {
"index": {
"auto_expand_replicas": "0-1",
"number_of_replicas": "0",
"number_of_shards": "1"
}
}
}
}

View file

@ -1,96 +1,8 @@
{
"type": "index",
"value": {
"aliases": {
".kibana": {
}
},
"index": ".kibana_1",
"index": ".kibana",
"mappings": {
"_meta": {
"migrationMappingPropertyHashes": {
"action": "6e96ac5e648f57523879661ea72525b7",
"action_task_params": "a9d49f184ee89641044be0ca2950fa3a",
"alert": "49eb3350984bd2a162914d3776e70cfb",
"api_key_pending_invalidation": "16f515278a295f6245149ad7c5ddedb7",
"apm-indices": "9bb9b2bf1fa636ed8619cbab5ce6a1dd",
"apm-telemetry": "3d1b76c39bfb2cc8296b024d73854724",
"app_search_telemetry": "3d1b76c39bfb2cc8296b024d73854724",
"application_usage_daily": "43b8830d5d0df85a6823d290885fc9fd",
"application_usage_totals": "3d1b76c39bfb2cc8296b024d73854724",
"application_usage_transactional": "3d1b76c39bfb2cc8296b024d73854724",
"background-session": "dfd06597e582fdbbbc09f1a3615e6ce0",
"canvas-element": "7390014e1091044523666d97247392fc",
"canvas-workpad": "b0a1706d356228dbdcb4a17e6b9eb231",
"canvas-workpad-template": "ae2673f678281e2c055d764b153e9715",
"cases": "477f214ff61acc3af26a7b7818e380c1",
"cases-comments": "8a50736330e953bca91747723a319593",
"cases-configure": "387c5f3a3bda7e0ae0dd4e106f914a69",
"cases-user-actions": "32277330ec6b721abe3b846cfd939a71",
"config": "c63748b75f39d0c54de12d12c1ccbc20",
"core-usage-stats": "3d1b76c39bfb2cc8296b024d73854724",
"dashboard": "40554caf09725935e2c02e02563a2d07",
"endpoint:user-artifact": "4a11183eee21e6fbad864f7a30b39ad0",
"endpoint:user-artifact-manifest": "a0d7b04ad405eed54d76e279c3727862",
"enterprise_search_telemetry": "3d1b76c39bfb2cc8296b024d73854724",
"epm-packages": "0cbbb16506734d341a96aaed65ec6413",
"epm-packages-assets": "44621b2f6052ef966da47b7c3a00f33b",
"exception-list": "67f055ab8c10abd7b2ebfd969b836788",
"exception-list-agnostic": "67f055ab8c10abd7b2ebfd969b836788",
"file-upload-telemetry": "0ed4d3e1983d1217a30982630897092e",
"fleet-agent-actions": "9511b565b1cc6441a42033db3d5de8e9",
"fleet-agent-events": "e20a508b6e805189356be381dbfac8db",
"fleet-agents": "cb661e8ede2b640c42c8e5ef99db0683",
"fleet-enrollment-api-keys": "a69ef7ae661dab31561d6c6f052ef2a7",
"graph-workspace": "27a94b2edcb0610c6aea54a7c56d7752",
"index-pattern": "45915a1ad866812242df474eb0479052",
"infrastructure-ui-source": "3d1b76c39bfb2cc8296b024d73854724",
"ingest-agent-policies": "8b0733cce189659593659dad8db426f0",
"ingest-outputs": "8854f34453a47e26f86a29f8f3b80b4e",
"ingest-package-policies": "c91ca97b1ff700f0fc64dc6b13d65a85",
"ingest_manager_settings": "02a03095f0e05b7a538fa801b88a217f",
"inventory-view": "3d1b76c39bfb2cc8296b024d73854724",
"kql-telemetry": "d12a98a6f19a2d273696597547e064ee",
"lens": "52346cfec69ff7b47d5f0c12361a2797",
"lens-ui-telemetry": "509bfa5978586998e05f9e303c07a327",
"map": "4a05b35c3a3a58fbc72dd0202dc3487f",
"maps-telemetry": "5ef305b18111b77789afefbd36b66171",
"metrics-explorer-view": "3d1b76c39bfb2cc8296b024d73854724",
"migrationVersion": "4a1746014a75ade3a714e1db5763276f",
"ml-job": "3bb64c31915acf93fc724af137a0891b",
"ml-telemetry": "257fd1d4b4fdbb9cb4b8a3b27da201e9",
"monitoring-telemetry": "2669d5ec15e82391cf58df4294ee9c68",
"namespace": "2f4316de49999235636386fe51dc06c1",
"namespaces": "2f4316de49999235636386fe51dc06c1",
"originId": "2f4316de49999235636386fe51dc06c1",
"query": "11aaeb7f5f7fa5bb43f25e18ce26e7d9",
"references": "7997cf5a56cc02bdc9c93361bde732b0",
"sample-data-telemetry": "7d3cfeb915303c9641c59681967ffeb4",
"search": "43012c7ebc4cb57054e0a490e4b43023",
"search-telemetry": "3d1b76c39bfb2cc8296b024d73854724",
"siem-detection-engine-rule-actions": "6569b288c169539db10cb262bf79de18",
"siem-detection-engine-rule-status": "ae783f41c6937db6b7a2ef5c93a9e9b0",
"siem-ui-timeline": "d12c5474364d737d17252acf1dc4585c",
"siem-ui-timeline-note": "8874706eedc49059d4cf0f5094559084",
"siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29",
"space": "c5ca8acafa0beaa4d08d014a97b6bc6b",
"spaces-usage-stats": "3d1b76c39bfb2cc8296b024d73854724",
"tag": "83d55da58f6530f7055415717ec06474",
"telemetry": "36a616f7026dfa617d6655df850fe16d",
"timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf",
"tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215",
"type": "2f4316de49999235636386fe51dc06c1",
"ui-counter": "0d409297dc5ebe1e3a1da691c6ee32e3",
"ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3",
"updated_at": "00da57df13e94e9d98437d13ace4bfe0",
"upgrade-assistant-reindex-operation": "215107c281839ea9b3ad5f6419819763",
"upgrade-assistant-telemetry": "56702cec857e0a9dacfb696655b4ff7b",
"uptime-dynamic-settings": "3d1b76c39bfb2cc8296b024d73854724",
"url": "c7f66a0df8b1b52f17c28c4adb111105",
"visualization": "f819cf6636b75c9e76ba733a0c6ef355",
"workplace_search_telemetry": "3d1b76c39bfb2cc8296b024d73854724"
}
},
"dynamic": "strict",
"properties": {
"action": {
@ -302,49 +214,6 @@
"dynamic": "false",
"type": "object"
},
"search-session": {
"properties": {
"appId": {
"type": "keyword"
},
"created": {
"type": "date"
},
"touched": {
"type": "date"
},
"expires": {
"type": "date"
},
"idMapping": {
"enabled": false,
"type": "object"
},
"initialState": {
"enabled": false,
"type": "object"
},
"name": {
"type": "keyword"
},
"persisted": {
"type": "boolean"
},
"restoreState": {
"enabled": false,
"type": "object"
},
"sessionId": {
"type": "keyword"
},
"status": {
"type": "keyword"
},
"urlGeneratorId": {
"type": "keyword"
}
}
},
"canvas-element": {
"dynamic": "false",
"properties": {
@ -519,6 +388,13 @@
}
}
},
"settings": {
"properties": {
"syncAlerts": {
"type": "boolean"
}
}
},
"status": {
"type": "keyword"
},
@ -528,6 +404,9 @@
"title": {
"type": "keyword"
},
"type": {
"type": "keyword"
},
"updated_at": {
"type": "date"
},
@ -551,6 +430,9 @@
"alertId": {
"type": "keyword"
},
"associationType": {
"type": "keyword"
},
"comment": {
"type": "text"
},
@ -672,6 +554,78 @@
}
}
},
"cases-connector-mappings": {
"properties": {
"mappings": {
"properties": {
"action_type": {
"type": "keyword"
},
"source": {
"type": "keyword"
},
"target": {
"type": "keyword"
}
}
}
}
},
"cases-sub-case": {
"properties": {
"closed_at": {
"type": "date"
},
"closed_by": {
"properties": {
"email": {
"type": "keyword"
},
"full_name": {
"type": "keyword"
},
"username": {
"type": "keyword"
}
}
},
"created_at": {
"type": "date"
},
"created_by": {
"properties": {
"email": {
"type": "keyword"
},
"full_name": {
"type": "keyword"
},
"username": {
"type": "keyword"
}
}
},
"status": {
"type": "keyword"
},
"updated_at": {
"type": "date"
},
"updated_by": {
"properties": {
"email": {
"type": "keyword"
},
"full_name": {
"type": "keyword"
},
"username": {
"type": "keyword"
}
}
}
}
},
"cases-user-actions": {
"properties": {
"action": {
@ -828,6 +782,19 @@
},
"endpoint:user-artifact-manifest": {
"properties": {
"artifacts": {
"properties": {
"artifactId": {
"index": false,
"type": "keyword"
},
"policyId": {
"index": false,
"type": "keyword"
}
},
"type": "nested"
},
"created": {
"index": false,
"type": "date"
@ -838,19 +805,6 @@
"semanticVersion": {
"index": false,
"type": "keyword"
},
"artifacts": {
"type": "nested",
"properties": {
"policyId": {
"type": "keyword",
"index": false
},
"artifactId": {
"type": "keyword",
"index": false
}
}
}
}
},
@ -1053,12 +1007,22 @@
"type": "keyword"
},
"name": {
"fields": {
"text": {
"type": "text"
}
},
"type": "keyword"
},
"os_types": {
"type": "keyword"
},
"tags": {
"fields": {
"text": {
"type": "text"
}
},
"type": "keyword"
},
"tie_breaker_id": {
@ -1179,12 +1143,22 @@
"type": "keyword"
},
"name": {
"fields": {
"text": {
"type": "text"
}
},
"type": "keyword"
},
"os_types": {
"type": "keyword"
},
"tags": {
"fields": {
"text": {
"type": "text"
}
},
"type": "keyword"
},
"tie_breaker_id": {
@ -1201,10 +1175,14 @@
}
}
},
"file-upload-telemetry": {
"file-upload-usage-collection-telemetry": {
"properties": {
"filesUploadedTotalCount": {
"type": "long"
"file_upload": {
"properties": {
"index_creation_count": {
"type": "long"
}
}
}
}
},
@ -1312,9 +1290,6 @@
"policy_revision": {
"type": "integer"
},
"shared_id": {
"type": "keyword"
},
"type": {
"type": "keyword"
},
@ -1428,6 +1403,12 @@
"is_default": {
"type": "boolean"
},
"is_default_fleet_server": {
"type": "boolean"
},
"is_managed": {
"type": "boolean"
},
"monitoring_enabled": {
"index": false,
"type": "keyword"
@ -1622,6 +1603,10 @@
}
}
},
"legacy-url-alias": {
"dynamic": "false",
"type": "object"
},
"lens": {
"properties": {
"description": {
@ -1661,6 +1646,10 @@
},
"map": {
"properties": {
"bounds": {
"dynamic": "false",
"type": "object"
},
"description": {
"type": "text"
},
@ -1689,47 +1678,6 @@
"dynamic": "false",
"type": "object"
},
"migrationVersion": {
"dynamic": "true",
"properties": {
"config": {
"fields": {
"keyword": {
"ignore_above": 256,
"type": "keyword"
}
},
"type": "text"
},
"index-pattern": {
"fields": {
"keyword": {
"ignore_above": 256,
"type": "keyword"
}
},
"type": "text"
},
"search": {
"fields": {
"keyword": {
"ignore_above": 256,
"type": "keyword"
}
},
"type": "text"
},
"space": {
"fields": {
"keyword": {
"ignore_above": 256,
"type": "keyword"
}
},
"type": "text"
}
}
},
"ml-job": {
"properties": {
"datafeed_id": {
@ -1753,17 +1701,6 @@
}
}
},
"ml-telemetry": {
"properties": {
"file_data_visualizer": {
"properties": {
"index_creation_count": {
"type": "long"
}
}
}
}
},
"monitoring-telemetry": {
"properties": {
"reportedClusterUuids": {
@ -1843,6 +1780,15 @@
"description": {
"type": "text"
},
"grid": {
"enabled": false,
"type": "object"
},
"hideChart": {
"doc_values": false,
"index": false,
"type": "boolean"
},
"hits": {
"doc_values": false,
"index": false,
@ -1856,6 +1802,9 @@
}
}
},
"pre712": {
"type": "boolean"
},
"sort": {
"doc_values": false,
"index": false,
@ -1869,6 +1818,58 @@
}
}
},
"search-session": {
"properties": {
"appId": {
"type": "keyword"
},
"created": {
"type": "date"
},
"expires": {
"type": "date"
},
"idMapping": {
"enabled": false,
"type": "object"
},
"initialState": {
"enabled": false,
"type": "object"
},
"name": {
"type": "keyword"
},
"persisted": {
"type": "boolean"
},
"realmName": {
"type": "keyword"
},
"realmType": {
"type": "keyword"
},
"restoreState": {
"enabled": false,
"type": "object"
},
"sessionId": {
"type": "keyword"
},
"status": {
"type": "keyword"
},
"touched": {
"type": "date"
},
"urlGeneratorId": {
"type": "keyword"
},
"username": {
"type": "keyword"
}
}
},
"search-telemetry": {
"dynamic": "false",
"type": "object"
@ -2192,10 +2193,14 @@
"type": "keyword"
},
"sort": {
"dynamic": "false",
"properties": {
"columnId": {
"type": "keyword"
},
"columnType": {
"type": "keyword"
},
"sortDirection": {
"type": "keyword"
}
@ -2389,13 +2394,6 @@
}
}
},
"tsvb-validation-telemetry": {
"properties": {
"failedRequests": {
"type": "long"
}
}
},
"type": {
"type": "keyword"
},
@ -2604,7 +2602,9 @@
"index": {
"auto_expand_replicas": "0-1",
"number_of_replicas": "0",
"number_of_shards": "1"
"number_of_shards": "1",
"priority": "10",
"refresh_interval": "1s"
}
}
}

View file

@ -5,6 +5,7 @@
* 2.0.
*/
import { SEARCH_SESSIONS_TABLE_ID } from '../../../plugins/data_enhanced/common/search';
import { FtrProviderContext } from '../ftr_provider_context';
export function SearchSessionsPageProvider({ getService, getPageObjects }: FtrProviderContext) {
@ -23,7 +24,7 @@ export function SearchSessionsPageProvider({ getService, getPageObjects }: FtrPr
},
async getList() {
const table = await testSubjects.find('searchSessionsMgmtTable');
const table = await testSubjects.find(SEARCH_SESSIONS_TABLE_ID);
const allRows = await table.findAllByTestSubject('searchSessionsRow');
return Promise.all(
@ -45,9 +46,7 @@ export function SearchSessionsPageProvider({ getService, getPageObjects }: FtrPr
reload: async () => {
log.debug('management ui: reload the status');
await actionsCell.click();
await find.clickByCssSelector(
'[data-test-subj="sessionManagementPopoverAction-reload"]'
);
await testSubjects.click('sessionManagementPopoverAction-reload');
},
delete: async () => {
log.debug('management ui: delete the session');

View file

@ -24,8 +24,8 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) {
testFiles: [
resolve(__dirname, './tests/apps/dashboard/async_search'),
resolve(__dirname, './tests/apps/discover'),
resolve(__dirname, './tests/apps/management/search_sessions'),
resolve(__dirname, './tests/apps/lens'),
resolve(__dirname, './tests/apps/management/search_sessions'),
],
kbnTestServer: {

View file

@ -137,7 +137,9 @@ export function SearchSessionsProvider({ getService }: FtrProviderContext) {
.expect(200);
const { saved_objects: savedObjects } = body as SavedObjectsFindResponse;
log.debug(`Found created search sessions: ${savedObjects.map(({ id }) => id)}`);
if (savedObjects.length) {
log.debug(`Found created search sessions: ${savedObjects.map(({ id }) => id)}`);
}
await Promise.all(
savedObjects.map(async (so) => {
log.debug(`Deleting search session: ${so.id}`);

View file

@ -13,7 +13,7 @@ export default function ({ loadTestFile, getService, getPageObjects }: FtrProvid
const PageObjects = getPageObjects(['common']);
const searchSessions = getService('searchSessions');
describe('async search', function () {
describe('Dashboard', function () {
this.tags('ciGroup3');
before(async () => {

View file

@ -13,7 +13,7 @@ export default function ({ loadTestFile, getService, getPageObjects }: FtrProvid
const PageObjects = getPageObjects(['common']);
const searchSessions = getService('searchSessions');
describe('async search', function () {
describe('Discover', function () {
this.tags('ciGroup3');
before(async () => {

View file

@ -22,13 +22,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const esArchiver = getService('esArchiver');
const log = getService('log');
// FLAKY: https://github.com/elastic/kibana/issues/89069
describe.skip('Search sessions Management UI', () => {
describe('Search Sessions Management UI', () => {
describe('New search sessions', () => {
before(async () => {
await PageObjects.common.navigateToApp('dashboard');
log.debug('wait for dashboard landing page');
retry.tryForTime(10000, async () => {
await retry.tryForTime(10000, async () => {
testSubjects.existOrFail('dashboardLandingPage');
});
await searchSessions.markTourDone();
@ -51,6 +50,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await retry.waitFor(`wait for first item to complete`, async function () {
const s = await PageObjects.searchSessionsManagement.getList();
if (!s[0]) {
log.warning(`Expected item is not in the table!`);
} else {
log.debug(`First item status: ${s[0].status}`);
}
return s[0] && s[0].status === 'complete';
});
@ -72,22 +76,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await searchSessions.expectState('restored');
});
// NOTE: this test depends on the previous one passing
it('Reloads as new session from management', async () => {
await PageObjects.searchSessionsManagement.goTo();
const searchSessionList = await PageObjects.searchSessionsManagement.getList();
expect(searchSessionList.length).to.be(1);
await searchSessionList[0].reload();
// embeddable has loaded
await PageObjects.dashboard.waitForRenderComplete();
// new search session was completed
await searchSessions.expectState('completed');
});
it('Deletes a session from management', async () => {
await PageObjects.searchSessionsManagement.goTo();
@ -122,34 +110,105 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await esArchiver.load('data/search_sessions');
const searchSessionList = await PageObjects.searchSessionsManagement.getList();
expect(searchSessionList.length).to.be(10);
expectSnapshot(searchSessionList.map((ss) => [ss.app, ss.name, ss.created, ss.expires]))
.toMatchInline(`
Array [
Array [
"graph",
"[eCommerce] Orders Test 6 ",
"16 Feb, 2021, 00:00:00",
"--",
],
Array [
"lens",
"[eCommerce] Orders Test 7",
"15 Feb, 2021, 00:00:00",
"24 Feb, 2021, 00:00:00",
],
Array [
"apm",
"[eCommerce] Orders Test 8",
"14 Feb, 2021, 00:00:00",
"24 Feb, 2021, 00:00:00",
],
Array [
"appSearch",
"[eCommerce] Orders Test 9",
"13 Feb, 2021, 00:00:00",
"24 Feb, 2021, 00:00:00",
],
Array [
"auditbeat",
"[eCommerce] Orders Test 10",
"12 Feb, 2021, 00:00:00",
"24 Feb, 2021, 00:00:00",
],
Array [
"code",
"[eCommerce] Orders Test 11",
"11 Feb, 2021, 00:00:00",
"24 Feb, 2021, 00:00:00",
],
Array [
"console",
"[eCommerce] Orders Test 12",
"10 Feb, 2021, 00:00:00",
"24 Feb, 2021, 00:00:00",
],
Array [
"security",
"[eCommerce] Orders Test 5 ",
"9 Feb, 2021, 00:00:00",
"24 Feb, 2021, 00:00:00",
],
Array [
"visualize",
"[eCommerce] Orders Test 4 ",
"8 Feb, 2021, 00:00:00",
"--",
],
Array [
"canvas",
"[eCommerce] Orders Test 3",
"7 Feb, 2021, 00:00:00",
"24 Feb, 2021, 00:00:00",
],
]
`);
expect(searchSessionList.map((ss) => ss.created)).to.eql([
'25 Dec, 2020, 00:00:00',
'24 Dec, 2020, 00:00:00',
'23 Dec, 2020, 00:00:00',
'22 Dec, 2020, 00:00:00',
'21 Dec, 2020, 00:00:00',
'20 Dec, 2020, 00:00:00',
'19 Dec, 2020, 00:00:00',
'18 Dec, 2020, 00:00:00',
'17 Dec, 2020, 00:00:00',
'16 Dec, 2020, 00:00:00',
]);
await esArchiver.unload('data/search_sessions');
});
expect(searchSessionList.map((ss) => ss.expires)).to.eql([
'--',
'--',
'--',
'23 Dec, 2020, 00:00:00',
'22 Dec, 2020, 00:00:00',
'--',
'--',
'--',
'18 Dec, 2020, 00:00:00',
'17 Dec, 2020, 00:00:00',
]);
it('has working pagination controls', async () => {
await esArchiver.load('data/search_sessions');
log.debug(`loading first page of sessions`);
const sessionListFirst = await PageObjects.searchSessionsManagement.getList();
expect(sessionListFirst.length).to.be(10);
await testSubjects.click('pagination-button-next');
const sessionListSecond = await PageObjects.searchSessionsManagement.getList();
expect(sessionListSecond.length).to.be(2);
expectSnapshot(sessionListSecond.map((ss) => [ss.app, ss.name, ss.created, ss.expires]))
.toMatchInline(`
Array [
Array [
"discover",
"[eCommerce] Orders Test 2",
"6 Feb, 2021, 00:00:00",
"24 Feb, 2021, 00:00:00",
],
Array [
"dashboard",
"[eCommerce] Revenue Dashboard",
"5 Feb, 2021, 00:00:00",
"24 Feb, 2021, 00:00:00",
],
]
`);
await esArchiver.unload('data/search_sessions');
});

View file

@ -22,8 +22,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const appsMenu = getService('appsMenu');
const managementMenu = getService('managementMenu');
describe('Search sessions Management UI permissions', () => {
describe('Sessions management is not available if non of apps enable search sessions', () => {
describe('Search Sessions Management UI permissions', () => {
describe('Sessions management is not available', () => {
before(async () => {
await security.role.create('data_analyst', {
elasticsearch: {},
@ -56,13 +56,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.security.forceLogout();
});
it('Sessions management is not available if non of apps enable search sessions', async () => {
it('if no apps enable search sessions', async () => {
const links = await appsMenu.readLinks();
expect(links.map((link) => link.text)).to.not.contain('Stack Management');
});
});
describe('Sessions management is available if one of apps enables search sessions', () => {
describe('Sessions management is available', () => {
before(async () => {
await security.role.create('data_analyst', {
elasticsearch: {},
@ -95,7 +95,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.security.forceLogout();
});
it('Sessions management is available if one of apps enables search sessions', async () => {
it('if one app enables search sessions', async () => {
const links = await appsMenu.readLinks();
expect(links.map((link) => link.text)).to.contain('Stack Management');
await PageObjects.common.navigateToApp('management');