[x-pack/test] convert PO to typescript, improve find/testSubject usage (#77389)
This commit is contained in:
parent
0574efaa8d
commit
1ab229aea8
|
@ -17,7 +17,6 @@
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import { Key } from 'selenium-webdriver';
|
||||
import expect from '@kbn/expect';
|
||||
import { FtrProviderContext } from '../ftr_provider_context';
|
||||
|
||||
|
@ -94,9 +93,9 @@ export function VegaChartPageProvider({
|
|||
const aceGutter = await this.getAceGutterContainer();
|
||||
|
||||
await aceGutter.doubleClick();
|
||||
await browser.pressKeys(Key.RIGHT);
|
||||
await browser.pressKeys(Key.LEFT);
|
||||
await browser.pressKeys(Key.LEFT);
|
||||
await browser.pressKeys(browser.keys.RIGHT);
|
||||
await browser.pressKeys(browser.keys.LEFT);
|
||||
await browser.pressKeys(browser.keys.LEFT);
|
||||
await browser.pressKeys(text);
|
||||
}
|
||||
|
||||
|
@ -105,7 +104,7 @@ export function VegaChartPageProvider({
|
|||
|
||||
await retry.try(async () => {
|
||||
await aceGutter.doubleClick();
|
||||
await browser.pressKeys(Key.BACK_SPACE);
|
||||
await browser.pressKeys(browser.keys.BACK_SPACE);
|
||||
|
||||
expect(await this.getSpec()).to.be('');
|
||||
});
|
||||
|
|
|
@ -4,15 +4,15 @@
|
|||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
|
||||
//import { map as mapAsync } from 'bluebird';
|
||||
import expect from '@kbn/expect';
|
||||
import { FtrProviderContext } from '../ftr_provider_context';
|
||||
|
||||
export function AccountSettingProvider({ getService }) {
|
||||
export function AccountSettingProvider({ getService }: FtrProviderContext) {
|
||||
const testSubjects = getService('testSubjects');
|
||||
const userMenu = getService('userMenu');
|
||||
|
||||
class AccountSettingsPage {
|
||||
async verifyAccountSettings(expectedEmail, expectedUserName) {
|
||||
async verifyAccountSettings(expectedEmail: string, expectedUserName: string) {
|
||||
await userMenu.clickProvileLink();
|
||||
|
||||
const usernameField = await testSubjects.find('username');
|
||||
|
@ -25,7 +25,7 @@ export function AccountSettingProvider({ getService }) {
|
|||
await userMenu.closeMenu();
|
||||
}
|
||||
|
||||
async changePassword(currentPassword, newPassword) {
|
||||
async changePassword(currentPassword: string, newPassword: string) {
|
||||
await testSubjects.setValue('currentPassword', currentPassword);
|
||||
await testSubjects.setValue('newPassword', newPassword);
|
||||
await testSubjects.setValue('confirmNewPassword', newPassword);
|
|
@ -6,8 +6,9 @@
|
|||
|
||||
import _ from 'lodash';
|
||||
import { APP_ID } from '../../../plugins/maps/common/constants';
|
||||
import { FtrProviderContext } from '../ftr_provider_context';
|
||||
|
||||
export function GisPageProvider({ getService, getPageObjects }) {
|
||||
export function GisPageProvider({ getService, getPageObjects }: FtrProviderContext) {
|
||||
const PageObjects = getPageObjects(['common', 'header', 'timePicker']);
|
||||
|
||||
const log = getService('log');
|
||||
|
@ -19,25 +20,27 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
const comboBox = getService('comboBox');
|
||||
const renderable = getService('renderable');
|
||||
|
||||
function escapeLayerName(layerName) {
|
||||
function escapeLayerName(layerName: string) {
|
||||
return layerName.split(' ').join('_');
|
||||
}
|
||||
|
||||
class GisPage {
|
||||
basePath;
|
||||
|
||||
constructor() {
|
||||
this.basePath = '';
|
||||
}
|
||||
|
||||
setBasePath(basePath) {
|
||||
setBasePath(basePath: string) {
|
||||
this.basePath = basePath;
|
||||
}
|
||||
|
||||
async setAbsoluteRange(start, end) {
|
||||
async setAbsoluteRange(start: string, end: string) {
|
||||
await PageObjects.timePicker.setAbsoluteRange(start, end);
|
||||
await this.waitForLayersToLoad();
|
||||
}
|
||||
|
||||
async setAndSubmitQuery(query) {
|
||||
async setAndSubmitQuery(query: string) {
|
||||
await queryBar.setQuery(query);
|
||||
await queryBar.submitQuery();
|
||||
await this.waitForLayersToLoad();
|
||||
|
@ -70,7 +73,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
// this method waits until the map view has stabilized, signaling that the panning/zooming is complete.
|
||||
// Pass origView parameter when the new map view determinition is async
|
||||
// so method knows when panning/zooming has started.
|
||||
async waitForMapPanAndZoom(origView) {
|
||||
async waitForMapPanAndZoom(origView?: { lon: number; lat: number; zoom: number }) {
|
||||
await retry.try(async () => {
|
||||
log.debug('Waiting for map pan and zoom to complete');
|
||||
const prevView = await this.getView();
|
||||
|
@ -94,7 +97,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
});
|
||||
}
|
||||
|
||||
async waitForLayerDeleted(layerName) {
|
||||
async waitForLayerDeleted(layerName: string) {
|
||||
log.debug('Wait for layer deleted');
|
||||
await retry.waitFor('Layer to be deleted', async () => {
|
||||
const doesLayerExist = await this.doesLayerExist(layerName);
|
||||
|
@ -104,7 +107,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
|
||||
// use the search filter box to narrow the results down to a single
|
||||
// entry, or at least to a single page of results
|
||||
async loadSavedMap(name) {
|
||||
async loadSavedMap(name: string) {
|
||||
log.debug(`Load Saved Map ${name}`);
|
||||
|
||||
await retry.try(async () => {
|
||||
|
@ -121,7 +124,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
await this.waitForLayersToLoad();
|
||||
}
|
||||
|
||||
async deleteSavedMaps(search) {
|
||||
async deleteSavedMaps(search: string) {
|
||||
await this.searchForMapWithName(search);
|
||||
await testSubjects.click('checkboxSelectAll');
|
||||
await testSubjects.click('deleteSelectedItems');
|
||||
|
@ -139,7 +142,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
await renderable.waitForRender();
|
||||
}
|
||||
|
||||
async saveMap(name, uncheckReturnToOriginModeSwitch = false) {
|
||||
async saveMap(name: string, uncheckReturnToOriginModeSwitch = false) {
|
||||
await testSubjects.click('mapSaveButton');
|
||||
await testSubjects.setValue('savedObjectTitle', name);
|
||||
if (uncheckReturnToOriginModeSwitch) {
|
||||
|
@ -180,7 +183,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
return exists;
|
||||
}
|
||||
|
||||
async searchForMapWithName(name) {
|
||||
async searchForMapWithName(name: string) {
|
||||
log.debug(`searchForMapWithName: ${name}`);
|
||||
|
||||
await this.gotoMapListingPage();
|
||||
|
@ -196,7 +199,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
}
|
||||
|
||||
async selectMap(name) {
|
||||
async selectMap(name: string) {
|
||||
await testSubjects.click(`mapListingTitleLink-${name.split(' ').join('-')}`);
|
||||
}
|
||||
|
||||
|
@ -221,7 +224,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
}
|
||||
}
|
||||
|
||||
async getMapCountWithName(name) {
|
||||
async getMapCountWithName(name: string) {
|
||||
await this.gotoMapListingPage();
|
||||
|
||||
log.debug(`getMapCountWithName: ${name}`);
|
||||
|
@ -260,7 +263,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
}
|
||||
}
|
||||
|
||||
async setView(lat, lon, zoom) {
|
||||
async setView(lat: number, lon: number, zoom: number) {
|
||||
log.debug(
|
||||
`Set view lat: ${lat.toString()}, lon: ${lon.toString()}, zoom: ${zoom.toString()}`
|
||||
);
|
||||
|
@ -286,7 +289,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
};
|
||||
}
|
||||
|
||||
async toggleLayerVisibility(layerName) {
|
||||
async toggleLayerVisibility(layerName: string) {
|
||||
log.debug(`Toggle layer visibility, layer: ${layerName}`);
|
||||
await this.openLayerTocActionsPanel(layerName);
|
||||
await testSubjects.click('layerVisibilityToggleButton');
|
||||
|
@ -300,7 +303,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
}
|
||||
}
|
||||
|
||||
async clickFitToBounds(layerName) {
|
||||
async clickFitToBounds(layerName: string) {
|
||||
log.debug(`Fit to bounds, layer: ${layerName}`);
|
||||
const origView = await this.getView();
|
||||
await this.openLayerTocActionsPanel(layerName);
|
||||
|
@ -308,7 +311,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
await this.waitForMapPanAndZoom(origView);
|
||||
}
|
||||
|
||||
async openLayerTocActionsPanel(layerName) {
|
||||
async openLayerTocActionsPanel(layerName: string) {
|
||||
const escapedDisplayName = escapeLayerName(layerName);
|
||||
const isOpen = await testSubjects.exists(`layerTocActionsPanel${escapedDisplayName}`);
|
||||
if (!isOpen) {
|
||||
|
@ -316,7 +319,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
}
|
||||
}
|
||||
|
||||
async openLayerPanel(layerName) {
|
||||
async openLayerPanel(layerName: string) {
|
||||
log.debug(`Open layer panel, layer: ${layerName}`);
|
||||
await this.openLayerTocActionsPanel(layerName);
|
||||
await testSubjects.click('editLayerButton');
|
||||
|
@ -327,7 +330,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
await this.waitForLayersToLoad();
|
||||
}
|
||||
|
||||
async getLayerTOCDetails(layerName) {
|
||||
async getLayerTOCDetails(layerName: string) {
|
||||
return await testSubjects.getVisibleText(`mapLayerTOCDetails${escapeLayerName(layerName)}`);
|
||||
}
|
||||
|
||||
|
@ -352,13 +355,13 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
}
|
||||
}
|
||||
|
||||
async doesLayerExist(layerName) {
|
||||
async doesLayerExist(layerName: string) {
|
||||
return await testSubjects.exists(
|
||||
`layerTocActionsPanelToggleButton${escapeLayerName(layerName)}`
|
||||
);
|
||||
}
|
||||
|
||||
async hasFilePickerLoadedFile(fileName) {
|
||||
async hasFilePickerLoadedFile(fileName: string) {
|
||||
log.debug(`Has file picker loaded file ${fileName}`);
|
||||
const filePickerText = await find.byCssSelector('.euiFilePicker__promptText');
|
||||
const filePickerTextContent = await filePickerText.getVisibleText();
|
||||
|
@ -393,7 +396,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
});
|
||||
}
|
||||
|
||||
async cancelLayerAdd(layerName) {
|
||||
async cancelLayerAdd(layerName: string) {
|
||||
log.debug(`Cancel layer add`);
|
||||
const cancelExists = await testSubjects.exists('layerAddCancelButton');
|
||||
if (cancelExists) {
|
||||
|
@ -405,7 +408,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
}
|
||||
}
|
||||
|
||||
async closeOrCancelLayer(layerName) {
|
||||
async closeOrCancelLayer(layerName: string) {
|
||||
log.debug(`Close or cancel layer add`);
|
||||
const cancelExists = await testSubjects.exists('layerAddCancelButton');
|
||||
const closeExists = await testSubjects.exists('layerPanelCancelButton');
|
||||
|
@ -449,24 +452,24 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
await testSubjects.click('importFileButton');
|
||||
}
|
||||
|
||||
async setIndexName(indexName) {
|
||||
async setIndexName(indexName: string) {
|
||||
log.debug(`Set index name to: ${indexName}`);
|
||||
await testSubjects.setValue('fileUploadIndexNameInput', indexName);
|
||||
}
|
||||
|
||||
async setIndexType(indexType) {
|
||||
async setIndexType(indexType: string) {
|
||||
log.debug(`Set index type to: ${indexType}`);
|
||||
await testSubjects.selectValue('fileImportIndexSelect', indexType);
|
||||
}
|
||||
|
||||
async indexTypeOptionExists(indexType) {
|
||||
async indexTypeOptionExists(indexType: string) {
|
||||
log.debug(`Check index type "${indexType}" available`);
|
||||
return await find.existsByCssSelector(
|
||||
`select[data-test-subj="fileImportIndexSelect"] > option[value="${indexType}"]`
|
||||
);
|
||||
}
|
||||
|
||||
async getCodeBlockParsedJson(dataTestSubjName) {
|
||||
async getCodeBlockParsedJson(dataTestSubjName: string) {
|
||||
log.debug(`Get parsed code block for ${dataTestSubjName}`);
|
||||
const indexRespCodeBlock = await testSubjects.find(`${dataTestSubjName}`);
|
||||
const indexRespJson = await indexRespCodeBlock.getAttribute('innerText');
|
||||
|
@ -483,7 +486,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
return await this.getCodeBlockParsedJson('indexPatternRespCodeBlock');
|
||||
}
|
||||
|
||||
async setLayerQuery(layerName, query) {
|
||||
async setLayerQuery(layerName: string, query: string) {
|
||||
await this.openLayerPanel(layerName);
|
||||
await testSubjects.click('mapLayerPanelOpenFilterEditorButton');
|
||||
const filterEditorContainer = await testSubjects.find('mapFilterEditor');
|
||||
|
@ -505,7 +508,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
await this.waitForLayersToLoad();
|
||||
}
|
||||
|
||||
async setJoinWhereQuery(layerName, query) {
|
||||
async setJoinWhereQuery(layerName: string, query: string) {
|
||||
await this.openLayerPanel(layerName);
|
||||
await testSubjects.click('mapJoinWhereExpressionButton');
|
||||
const filterEditorContainer = await testSubjects.find('mapJoinWhereFilterEditor');
|
||||
|
@ -531,7 +534,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
await testSubjects.click('uploadGeoJson');
|
||||
}
|
||||
|
||||
async uploadJsonFileForIndexing(path) {
|
||||
async uploadJsonFileForIndexing(path: string) {
|
||||
await PageObjects.common.setFileInputPath(path);
|
||||
log.debug(`File selected`);
|
||||
|
||||
|
@ -540,7 +543,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
}
|
||||
|
||||
// Returns first layer by default
|
||||
async selectVectorLayer(vectorLayerName) {
|
||||
async selectVectorLayer(vectorLayerName: string) {
|
||||
log.debug(`Select EMS vector layer ${vectorLayerName}`);
|
||||
if (!vectorLayerName) {
|
||||
throw new Error(`You did not provide the EMS layer to select`);
|
||||
|
@ -549,14 +552,14 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
await this.waitForLayersToLoad();
|
||||
}
|
||||
|
||||
async removeLayer(layerName) {
|
||||
async removeLayer(layerName: string) {
|
||||
log.debug(`Remove layer ${layerName}`);
|
||||
await this.openLayerPanel(layerName);
|
||||
await testSubjects.click(`mapRemoveLayerButton`);
|
||||
await this.waitForLayerDeleted(layerName);
|
||||
}
|
||||
|
||||
async getLayerErrorText(layerName) {
|
||||
async getLayerErrorText(layerName: string) {
|
||||
log.debug(`Remove layer ${layerName}`);
|
||||
await this.openLayerPanel(layerName);
|
||||
return await testSubjects.getVisibleText(`layerErrorMessage`);
|
||||
|
@ -589,7 +592,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
|
||||
// Method should only be used when multiple requests are expected
|
||||
// RequestSelector will only display inspectorRequestChooser when there is more than one request
|
||||
async openInspectorRequest(requestName) {
|
||||
async openInspectorRequest(requestName: string) {
|
||||
await inspector.open();
|
||||
await inspector.openInspectorRequestsView();
|
||||
log.debug(`Open Inspector request ${requestName}`);
|
||||
|
@ -620,12 +623,12 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
return mapboxStyle;
|
||||
}
|
||||
|
||||
getInspectorStatRowHit(stats, rowName) {
|
||||
getInspectorStatRowHit(stats: string[][], rowName: string) {
|
||||
const STATS_ROW_NAME_INDEX = 0;
|
||||
const STATS_ROW_VALUE_INDEX = 1;
|
||||
|
||||
const statsRow = stats.find((statsRow) => {
|
||||
return statsRow[STATS_ROW_NAME_INDEX] === rowName;
|
||||
const statsRow = stats.find((row) => {
|
||||
return row[STATS_ROW_NAME_INDEX] === rowName;
|
||||
});
|
||||
if (!statsRow) {
|
||||
throw new Error(`Unable to find value for row ${rowName} in ${stats}`);
|
||||
|
@ -634,7 +637,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
return statsRow[STATS_ROW_VALUE_INDEX];
|
||||
}
|
||||
|
||||
async triggerSingleRefresh(refreshInterval) {
|
||||
async triggerSingleRefresh(refreshInterval: number) {
|
||||
log.debug(`triggerSingleRefresh, refreshInterval: ${refreshInterval}`);
|
||||
await PageObjects.timePicker.resumeAutoRefresh();
|
||||
log.debug('waiting to give time for refresh timer to fire');
|
||||
|
@ -643,7 +646,7 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
await this.waitForLayersToLoad();
|
||||
}
|
||||
|
||||
async lockTooltipAtPosition(xOffset, yOffset) {
|
||||
async lockTooltipAtPosition(xOffset: number, yOffset: number) {
|
||||
await retry.try(async () => {
|
||||
const mapContainerElement = await testSubjects.find('mapContainer');
|
||||
await mapContainerElement.moveMouseTo({ xOffset, yOffset });
|
||||
|
@ -656,12 +659,12 @@ export function GisPageProvider({ getService, getPageObjects }) {
|
|||
});
|
||||
}
|
||||
|
||||
async setStyleByValue(styleName, fieldName) {
|
||||
async setStyleByValue(styleName: string, fieldName: string) {
|
||||
await testSubjects.selectValue(`staticDynamicSelect_${styleName}`, 'DYNAMIC');
|
||||
await comboBox.set(`styleFieldSelect_${styleName}`, fieldName);
|
||||
}
|
||||
|
||||
async selectCustomColorRamp(styleName) {
|
||||
async selectCustomColorRamp(styleName: string) {
|
||||
// open super select menu
|
||||
await testSubjects.click(`colorMapSelect_${styleName}`);
|
||||
// Click option
|
|
@ -23,7 +23,7 @@ export function GraphPageProvider({ getService, getPageObjects }: FtrProviderCon
|
|||
const find = getService('find');
|
||||
const log = getService('log');
|
||||
const testSubjects = getService('testSubjects');
|
||||
const PageObjects = getPageObjects(['common', 'header', 'settings']);
|
||||
const PageObjects = getPageObjects(['common', 'header']);
|
||||
const retry = getService('retry');
|
||||
|
||||
class GraphPage {
|
||||
|
|
|
@ -4,7 +4,9 @@
|
|||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
|
||||
export function GrokDebuggerPageProvider({ getPageObjects, getService }) {
|
||||
import { FtrProviderContext } from '../ftr_provider_context';
|
||||
|
||||
export function GrokDebuggerPageProvider({ getPageObjects, getService }: FtrProviderContext) {
|
||||
const PageObjects = getPageObjects(['common']);
|
||||
const grokDebugger = getService('grokDebugger');
|
||||
|
|
@ -7,30 +7,20 @@
|
|||
import { pageObjects as kibanaFunctionalPageObjects } from '../../../../test/functional/page_objects';
|
||||
|
||||
import { CanvasPageProvider } from './canvas_page';
|
||||
// @ts-ignore not ts yet
|
||||
import { SecurityPageProvider } from './security_page';
|
||||
// @ts-ignore not ts yet
|
||||
import { MonitoringPageProvider } from './monitoring_page';
|
||||
// @ts-ignore not ts yet
|
||||
import { LogstashPageProvider } from './logstash_page';
|
||||
// @ts-ignore not ts yet
|
||||
import { GraphPageProvider } from './graph_page';
|
||||
// @ts-ignore not ts yet
|
||||
import { GrokDebuggerPageProvider } from './grok_debugger_page';
|
||||
// @ts-ignore not ts yet
|
||||
import { WatcherPageProvider } from './watcher_page';
|
||||
import { ReportingPageProvider } from './reporting_page';
|
||||
// @ts-ignore not ts yet
|
||||
import { AccountSettingProvider } from './accountsetting_page';
|
||||
import { AccountSettingProvider } from './account_settings_page';
|
||||
import { InfraHomePageProvider } from './infra_home_page';
|
||||
import { InfraLogsPageProvider } from './infra_logs_page';
|
||||
// @ts-ignore not ts yet
|
||||
import { GisPageProvider } from './gis_page';
|
||||
// @ts-ignore not ts yet
|
||||
import { StatusPagePageProvider } from './status_page';
|
||||
// @ts-ignore not ts yet
|
||||
import { UpgradeAssistantProvider } from './upgrade_assistant';
|
||||
// @ts-ignore not ts yet
|
||||
import { UpgradeAssistantPageProvider } from './upgrade_assistant_page';
|
||||
import { RollupPageProvider } from './rollup_page';
|
||||
import { UptimePageProvider } from './uptime_page';
|
||||
import { ApiKeysPageProvider } from './api_keys_page';
|
||||
|
@ -66,7 +56,7 @@ export const pageObjects = {
|
|||
infraLogs: InfraLogsPageProvider,
|
||||
maps: GisPageProvider,
|
||||
statusPage: StatusPagePageProvider,
|
||||
upgradeAssistant: UpgradeAssistantProvider,
|
||||
upgradeAssistant: UpgradeAssistantPageProvider,
|
||||
uptime: UptimePageProvider,
|
||||
rollup: RollupPageProvider,
|
||||
apiKeys: ApiKeysPageProvider,
|
||||
|
|
|
@ -13,14 +13,7 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont
|
|||
const retry = getService('retry');
|
||||
const find = getService('find');
|
||||
const comboBox = getService('comboBox');
|
||||
const PageObjects = getPageObjects([
|
||||
'header',
|
||||
'common',
|
||||
'visualize',
|
||||
'dashboard',
|
||||
'header',
|
||||
'timePicker',
|
||||
]);
|
||||
const PageObjects = getPageObjects(['header', 'header', 'timePicker']);
|
||||
|
||||
return logWrapper('lensPage', log, {
|
||||
/**
|
||||
|
|
|
@ -4,8 +4,10 @@
|
|||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
|
||||
export function MonitoringPageProvider({ getPageObjects, getService }) {
|
||||
const PageObjects = getPageObjects(['common', 'header', 'security', 'login', 'spaceSelector']);
|
||||
import { FtrProviderContext } from '../ftr_provider_context';
|
||||
|
||||
export function MonitoringPageProvider({ getPageObjects, getService }: FtrProviderContext) {
|
||||
const PageObjects = getPageObjects(['common', 'header', 'security', 'login']);
|
||||
const testSubjects = getService('testSubjects');
|
||||
const security = getService('security');
|
||||
const find = getService('find');
|
||||
|
@ -35,34 +37,34 @@ export function MonitoringPageProvider({ getPageObjects, getService }) {
|
|||
return testSubjects.getVisibleText('accessDeniedTitle');
|
||||
}
|
||||
|
||||
async clickBreadcrumb(subj) {
|
||||
async clickBreadcrumb(subj: string) {
|
||||
return testSubjects.click(subj);
|
||||
}
|
||||
|
||||
async assertTableNoData(subj) {
|
||||
async assertTableNoData(subj: string) {
|
||||
if (!(await testSubjects.exists(subj))) {
|
||||
throw new Error('Expected to find the no data message');
|
||||
}
|
||||
}
|
||||
|
||||
async tableGetRows(subj) {
|
||||
async tableGetRows(subj: string) {
|
||||
const table = await testSubjects.find(subj);
|
||||
return table.findAllByTagName('tr');
|
||||
}
|
||||
|
||||
async tableGetRowsFromContainer(subj) {
|
||||
async tableGetRowsFromContainer(subj: string) {
|
||||
const table = await testSubjects.find(subj);
|
||||
const tbody = await table.findByTagName('tbody');
|
||||
return tbody.findAllByTagName('tr');
|
||||
}
|
||||
|
||||
async tableSetFilter(subj, text) {
|
||||
async tableSetFilter(subj: string, text: string) {
|
||||
await testSubjects.setValue(subj, text);
|
||||
await PageObjects.common.pressEnterKey();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
}
|
||||
|
||||
async tableClearFilter(subj) {
|
||||
async tableClearFilter(subj: string) {
|
||||
return await testSubjects.setValue(subj, ' \uE003'); // space and backspace to trigger onChange event
|
||||
}
|
||||
})();
|
|
@ -5,16 +5,15 @@
|
|||
*/
|
||||
|
||||
import http, { IncomingMessage } from 'http';
|
||||
import { FtrProviderContext } from 'test/functional/ftr_provider_context';
|
||||
import { parse } from 'url';
|
||||
import { FtrProviderContext } from '../ftr_provider_context';
|
||||
|
||||
export function ReportingPageProvider({ getService, getPageObjects }: FtrProviderContext) {
|
||||
const browser = getService('browser');
|
||||
const log = getService('log');
|
||||
const retry = getService('retry');
|
||||
const testSubjects = getService('testSubjects');
|
||||
|
||||
const PageObjects = getPageObjects(['common', 'security' as any, 'share', 'timePicker']); // FIXME: Security PageObject is not Typescript
|
||||
const PageObjects = getPageObjects(['security', 'share', 'timePicker']);
|
||||
|
||||
class ReportingPage {
|
||||
async forceSharedItemsContainerSize({ width }: { width: number }) {
|
||||
|
|
|
@ -6,8 +6,9 @@
|
|||
|
||||
import expect from '@kbn/expect';
|
||||
import { map as mapAsync } from 'bluebird';
|
||||
import { FtrProviderContext } from '../ftr_provider_context';
|
||||
|
||||
export function RollupPageProvider({ getService, getPageObjects }) {
|
||||
export function RollupPageProvider({ getService, getPageObjects }: FtrProviderContext) {
|
||||
const testSubjects = getService('testSubjects');
|
||||
const log = getService('log');
|
||||
const find = getService('find');
|
||||
|
@ -15,16 +16,16 @@ export function RollupPageProvider({ getService, getPageObjects }) {
|
|||
|
||||
class RollupJobPage {
|
||||
async createNewRollUpJob(
|
||||
jobName,
|
||||
indexPattern,
|
||||
indexName,
|
||||
interval,
|
||||
jobName: string,
|
||||
indexPattern: string,
|
||||
indexName: string,
|
||||
interval: string,
|
||||
delay = '1d',
|
||||
startImmediately = false,
|
||||
scheduledTime = { time: 'minute', cron: true }
|
||||
) {
|
||||
let stepNum = 1;
|
||||
//Step 1
|
||||
// Step 1
|
||||
await testSubjects.click('createRollupJobButton');
|
||||
await this.verifyStepIsActive(stepNum);
|
||||
await this.addRollupNameandIndexPattern(jobName, indexPattern);
|
||||
|
@ -34,47 +35,47 @@ export function RollupPageProvider({ getService, getPageObjects }) {
|
|||
await this.setRollupDelay(delay);
|
||||
stepNum = await this.moveToNextStep(stepNum);
|
||||
|
||||
//Step 2: Histogram
|
||||
// Step 2: Histogram
|
||||
await this.verifyStepIsActive(stepNum);
|
||||
await this.setJobInterval(interval);
|
||||
stepNum = await this.moveToNextStep(stepNum);
|
||||
|
||||
//Step 3: Terms (optional)
|
||||
// Step 3: Terms (optional)
|
||||
await this.verifyStepIsActive(stepNum);
|
||||
stepNum = await this.moveToNextStep();
|
||||
|
||||
//Step 4: Histogram(optional)
|
||||
// Step 4: Histogram(optional)
|
||||
await this.verifyStepIsActive(stepNum);
|
||||
stepNum = await this.moveToNextStep();
|
||||
|
||||
//Step 5: Metrics(optional)
|
||||
// Step 5: Metrics(optional)
|
||||
await this.verifyStepIsActive(stepNum);
|
||||
stepNum = await this.moveToNextStep();
|
||||
|
||||
//Step 6: saveJob and verify the name in the list
|
||||
// Step 6: saveJob and verify the name in the list
|
||||
await this.verifyStepIsActive(stepNum);
|
||||
await this.saveJob(startImmediately);
|
||||
}
|
||||
|
||||
async verifyStepIsActive(stepNumber) {
|
||||
async verifyStepIsActive(stepNumber = 0) {
|
||||
await testSubjects.exists(`createRollupStep${stepNumber}--active`);
|
||||
}
|
||||
|
||||
async setScheduleTime(time, cron) {
|
||||
if (cron) {
|
||||
async setScheduleTime(time: string, isCron: boolean) {
|
||||
if (isCron) {
|
||||
await testSubjects.click('rollupShowAdvancedCronLink');
|
||||
await testSubjects.setValue('rollupAdvancedCron', time);
|
||||
}
|
||||
// TODO: Add handling for if Cron is false to go through clicking options.
|
||||
}
|
||||
|
||||
async addRollupNameandIndexPattern(name, indexPattern) {
|
||||
async addRollupNameandIndexPattern(name: string, indexPattern: string) {
|
||||
log.debug(`Adding name ${name} to form`);
|
||||
await testSubjects.setValue('rollupJobName', name);
|
||||
await testSubjects.setValue('rollupIndexPattern', indexPattern);
|
||||
}
|
||||
|
||||
async setRollupDelay(time) {
|
||||
async setRollupDelay(time: string) {
|
||||
log.debug(`Setting rollup delay to "${time}"`);
|
||||
await testSubjects.setValue('rollupDelay', time);
|
||||
}
|
||||
|
@ -86,20 +87,20 @@ export function RollupPageProvider({ getService, getPageObjects }) {
|
|||
expect(text).to.be.equal('Success! Index pattern has matching indices.');
|
||||
}
|
||||
|
||||
async setIndexName(name) {
|
||||
async setIndexName(name: string) {
|
||||
await testSubjects.setValue('rollupIndexName', name);
|
||||
}
|
||||
|
||||
async moveToNextStep(stepNum) {
|
||||
async moveToNextStep(stepNum = 0) {
|
||||
await testSubjects.click('rollupJobNextButton');
|
||||
return stepNum + 1;
|
||||
}
|
||||
|
||||
async setJobInterval(time) {
|
||||
async setJobInterval(time: string) {
|
||||
await testSubjects.setValue('rollupJobInterval', time);
|
||||
}
|
||||
|
||||
async saveJob(startImmediately) {
|
||||
async saveJob(startImmediately: boolean) {
|
||||
if (startImmediately) {
|
||||
const checkbox = await find.byCssSelector('.euiCheckbox');
|
||||
await checkbox.click();
|
|
@ -17,7 +17,7 @@ export function SecurityPageProvider({ getService, getPageObjects }: FtrProvider
|
|||
const esArchiver = getService('esArchiver');
|
||||
const userMenu = getService('userMenu');
|
||||
const comboBox = getService('comboBox');
|
||||
const PageObjects = getPageObjects(['common', 'header', 'settings', 'home', 'error']);
|
||||
const PageObjects = getPageObjects(['common', 'header', 'error']);
|
||||
|
||||
interface LoginOptions {
|
||||
expectSpaceSelector?: boolean;
|
||||
|
|
|
@ -13,7 +13,7 @@ export function SpaceSelectorPageProvider({ getService, getPageObjects }: FtrPro
|
|||
const testSubjects = getService('testSubjects');
|
||||
const browser = getService('browser');
|
||||
const find = getService('find');
|
||||
const PageObjects = getPageObjects(['common', 'header', 'security']);
|
||||
const PageObjects = getPageObjects(['common']);
|
||||
|
||||
class SpaceSelectorPage {
|
||||
async initTests() {
|
||||
|
|
|
@ -5,13 +5,14 @@
|
|||
*/
|
||||
|
||||
import expect from '@kbn/expect';
|
||||
import { FtrProviderContext } from '../ftr_provider_context';
|
||||
|
||||
export function StatusPagePageProvider({ getService, getPageObjects }) {
|
||||
export function StatusPagePageProvider({ getService, getPageObjects }: FtrProviderContext) {
|
||||
const retry = getService('retry');
|
||||
const log = getService('log');
|
||||
const browser = getService('browser');
|
||||
const find = getService('find');
|
||||
const PageObjects = getPageObjects(['common', 'home', 'security']);
|
||||
const { common } = getPageObjects(['common']);
|
||||
|
||||
class StatusPage {
|
||||
async initTests() {
|
||||
|
@ -20,13 +21,13 @@ export function StatusPagePageProvider({ getService, getPageObjects }) {
|
|||
|
||||
async navigateToPage() {
|
||||
return await retry.try(async () => {
|
||||
const url = PageObjects.common.getHostPort() + '/status';
|
||||
const url = common.getHostPort() + '/status';
|
||||
log.info(`StatusPage:navigateToPage(): ${url}`);
|
||||
await browser.get(url);
|
||||
});
|
||||
}
|
||||
|
||||
async expectStatusPage() {
|
||||
async expectStatusPage(): Promise<void> {
|
||||
return await retry.try(async () => {
|
||||
log.debug(`expectStatusPage()`);
|
||||
await find.byCssSelector('[data-test-subj="statusPageRoot"]', 20000);
|
|
@ -5,14 +5,15 @@
|
|||
*/
|
||||
|
||||
import expect from '@kbn/expect';
|
||||
import { FtrProviderContext } from '../ftr_provider_context';
|
||||
|
||||
export function UpgradeAssistantProvider({ getService, getPageObjects }) {
|
||||
export function UpgradeAssistantPageProvider({ getPageObjects, getService }: FtrProviderContext) {
|
||||
const retry = getService('retry');
|
||||
const log = getService('log');
|
||||
const browser = getService('browser');
|
||||
const find = getService('find');
|
||||
const testSubjects = getService('testSubjects');
|
||||
const PageObjects = getPageObjects(['common', 'settings', 'security']);
|
||||
const { common } = getPageObjects(['common']);
|
||||
|
||||
class UpgradeAssistant {
|
||||
async initTests() {
|
||||
|
@ -21,7 +22,7 @@ export function UpgradeAssistantProvider({ getService, getPageObjects }) {
|
|||
|
||||
async navigateToPage() {
|
||||
return await retry.try(async () => {
|
||||
await PageObjects.common.navigateToApp('settings');
|
||||
await common.navigateToApp('settings');
|
||||
await testSubjects.click('upgrade_assistant');
|
||||
});
|
||||
}
|
||||
|
@ -29,7 +30,7 @@ export function UpgradeAssistantProvider({ getService, getPageObjects }) {
|
|||
async expectUpgradeAssistant() {
|
||||
return await retry.try(async () => {
|
||||
log.debug(`expectUpgradeAssistant()`);
|
||||
expect(testSubjects.exists('upgradeAssistantRoot')).to.be.true;
|
||||
expect(await testSubjects.exists('upgradeAssistantRoot')).to.equal(true);
|
||||
const url = await browser.getCurrentUrl();
|
||||
expect(url).to.contain(`/upgrade_assistant`);
|
||||
});
|
||||
|
@ -42,7 +43,7 @@ export function UpgradeAssistantProvider({ getService, getPageObjects }) {
|
|||
});
|
||||
}
|
||||
|
||||
async expectDeprecationLoggingLabel(labelText) {
|
||||
async expectDeprecationLoggingLabel(labelText: string) {
|
||||
return await retry.try(async () => {
|
||||
log.debug('expectDeprecationLoggingLabel()');
|
||||
const label = await find.byCssSelector(
|
||||
|
@ -53,19 +54,17 @@ export function UpgradeAssistantProvider({ getService, getPageObjects }) {
|
|||
});
|
||||
}
|
||||
|
||||
async clickTab(tabId) {
|
||||
async clickTab(tabId: string) {
|
||||
return await retry.try(async () => {
|
||||
log.debug('clickTab()');
|
||||
const tab = await find.byCssSelector(`.euiTabs .euiTab#${tabId}`);
|
||||
await tab.click();
|
||||
await find.clickByCssSelector(`.euiTabs .euiTab#${tabId}`);
|
||||
});
|
||||
}
|
||||
|
||||
async expectIssueSummary(summary) {
|
||||
async expectIssueSummary(summary: string) {
|
||||
return await retry.try(async () => {
|
||||
log.debug('expectIssueSummary()');
|
||||
const summaryEl = await testSubjects.find('upgradeAssistantIssueSummary');
|
||||
const summaryElText = await summaryEl.getVisibleText();
|
||||
const summaryElText = await testSubjects.getVisibleText('upgradeAssistantIssueSummary');
|
||||
expect(summaryElText).to.eql(summary);
|
||||
});
|
||||
}
|
|
@ -8,7 +8,7 @@ import expect from '@kbn/expect';
|
|||
import { FtrProviderContext } from '../ftr_provider_context';
|
||||
|
||||
export function UptimePageProvider({ getPageObjects, getService }: FtrProviderContext) {
|
||||
const pageObjects = getPageObjects(['common', 'timePicker', 'header']);
|
||||
const pageObjects = getPageObjects(['timePicker', 'header']);
|
||||
const { common: commonService, monitor, navigation } = getService('uptime');
|
||||
const retry = getService('retry');
|
||||
|
||||
|
|
|
@ -5,9 +5,10 @@
|
|||
*/
|
||||
|
||||
import { map as mapAsync } from 'bluebird';
|
||||
import { FtrProviderContext } from '../ftr_provider_context';
|
||||
|
||||
export function WatcherPageProvider({ getPageObjects, getService }) {
|
||||
const PageObjects = getPageObjects(['common', 'header', 'settings']);
|
||||
export function WatcherPageProvider({ getPageObjects, getService }: FtrProviderContext) {
|
||||
const PageObjects = getPageObjects(['header']);
|
||||
const find = getService('find');
|
||||
const testSubjects = getService('testSubjects');
|
||||
|
||||
|
@ -22,7 +23,7 @@ export function WatcherPageProvider({ getPageObjects, getService }) {
|
|||
}
|
||||
}
|
||||
|
||||
async createWatch(watchName, name) {
|
||||
async createWatch(watchName: string, name: string) {
|
||||
await testSubjects.click('createWatchButton');
|
||||
await testSubjects.click('jsonWatchCreateLink');
|
||||
await find.setValue('#id', watchName);
|
||||
|
@ -31,7 +32,7 @@ export function WatcherPageProvider({ getPageObjects, getService }) {
|
|||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
}
|
||||
|
||||
async getWatch(watchID) {
|
||||
async getWatch(watchID: string) {
|
||||
const watchIdColumn = await testSubjects.find(`watchIdColumn-${watchID}`);
|
||||
const watchNameColumn = await testSubjects.find(`watchNameColumn-${watchID}`);
|
||||
const id = await watchIdColumn.getVisibleText();
|
||||
|
@ -47,7 +48,7 @@ export function WatcherPageProvider({ getPageObjects, getService }) {
|
|||
await testSubjects.click('btnDeleteWatches');
|
||||
}
|
||||
|
||||
//get all the watches in the list
|
||||
// get all the watches in the list
|
||||
async getWatches() {
|
||||
const watches = await find.allByCssSelector('.euiTableRow');
|
||||
return mapAsync(watches, async (watch) => {
|
|
@ -52,13 +52,11 @@ export function IngestManagerCreatePackagePolicy({
|
|||
async selectAgentPolicy(name?: string) {
|
||||
// if we have a name, then find the button with that `title` set.
|
||||
if (name) {
|
||||
await (
|
||||
await find.byCssSelector(`[data-test-subj="agentPolicyItem"][title="${name}"]`)
|
||||
).click();
|
||||
await find.clickByCssSelector(`[data-test-subj="agentPolicyItem"][title="${name}"]`);
|
||||
}
|
||||
// Else, just select the first agent policy that is present
|
||||
else {
|
||||
await (await testSubjects.find('agentPolicyItem')).click();
|
||||
await testSubjects.click('agentPolicyItem');
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ export function EndpointPolicyPageProvider({ getService, getPageObjects }: FtrPr
|
|||
*/
|
||||
async findFirstActionsButton() {
|
||||
await this.ensureIsOnPolicyPage();
|
||||
return (await testSubjects.findAll('policyActionsButton'))[0];
|
||||
return await testSubjects.find('policyActionsButton');
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -36,8 +36,7 @@ export function EndpointPolicyPageProvider({ getService, getPageObjects }: FtrPr
|
|||
async launchAndFindDeleteModal() {
|
||||
const actionsButton = await this.findFirstActionsButton();
|
||||
await actionsButton.click();
|
||||
const deleteAction = await testSubjects.find('policyDeleteButton');
|
||||
await deleteAction.click();
|
||||
await testSubjects.click('policyDeleteButton');
|
||||
return await testSubjects.find('policyListDeleteModal');
|
||||
},
|
||||
|
||||
|
|
Loading…
Reference in a new issue