Skip to content

Commit

Permalink
adds edit test service
Browse files Browse the repository at this point in the history
  • Loading branch information
alvarezmelissa87 committed Aug 5, 2020
1 parent f5ee54d commit 019b5f3
Show file tree
Hide file tree
Showing 7 changed files with 127 additions and 98 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -168,31 +168,34 @@ export default function ({ getService }: FtrProviderContext) {
);
});

it('displays details for the created job in the analytics table', async () => {
await ml.dataFrameAnalyticsTable.assertAnalyticsRowFields(testData.jobId, {
id: testData.jobId,
description: testData.jobDescription,
sourceIndex: testData.source,
destinationIndex: testData.destinationIndex,
type: testData.expected.row.type,
status: testData.expected.row.status,
progress: testData.expected.row.progress,
});
});

it('should open the edit form for the created job in the analytics table', async () => {
await ml.dataFrameAnalyticsTable.filterWithSearchString(testData.jobId);
const rows = await ml.dataFrameAnalyticsTable.parseAnalyticsTable();
const filteredRows = rows.filter((row) => row.id === testData.jobId);
expect(filteredRows).to.have.length(
1,
`Filtered analytics table should have 1 row for job id '${testData.jobId}' (got matching items '${filteredRows}')`
);
if (filteredRows?.length) {
await ml.dataFrameAnalyticsTable.openEditFlyout();
}
await ml.dataFrameAnalyticsTable.openEditFlyout(testData.jobId);
});

it('should input the description in the edit form', async () => {
await ml.dataFrameAnalyticsCreation.assertJobDescriptionEditInputExists();
await ml.dataFrameAnalyticsCreation.setJobDescriptionEdit(editedDescription);
await ml.dataFrameAnalyticsEdit.assertJobDescriptionEditInputExists();
await ml.dataFrameAnalyticsEdit.setJobDescriptionEdit(editedDescription);
});

it('should input the model memory limit in the edit form', async () => {
await ml.dataFrameAnalyticsCreation.assertJobMmlEditInputExists();
await ml.dataFrameAnalyticsCreation.setJobMmlEdit('21mb');
await ml.dataFrameAnalyticsEdit.assertJobMmlEditInputExists();
await ml.dataFrameAnalyticsEdit.setJobMmlEdit('21mb');
});

it('should submit the edit job form', async () => {
await ml.dataFrameAnalyticsCreation.updateAnalyticsJob();
await ml.dataFrameAnalyticsEdit.updateAnalyticsJob();
});

it('displays details for the created job in the analytics table', async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,31 +186,34 @@ export default function ({ getService }: FtrProviderContext) {
);
});

it('displays details for the created job in the analytics table', async () => {
await ml.dataFrameAnalyticsTable.assertAnalyticsRowFields(testData.jobId, {
id: testData.jobId,
description: testData.jobDescription,
sourceIndex: testData.source,
destinationIndex: testData.destinationIndex,
type: testData.expected.row.type,
status: testData.expected.row.status,
progress: testData.expected.row.progress,
});
});

it('should open the edit form for the created job in the analytics table', async () => {
await ml.dataFrameAnalyticsTable.filterWithSearchString(testData.jobId);
const rows = await ml.dataFrameAnalyticsTable.parseAnalyticsTable();
const filteredRows = rows.filter((row) => row.id === testData.jobId);
expect(filteredRows).to.have.length(
1,
`Filtered analytics table should have 1 row for job id '${testData.jobId}' (got matching items '${filteredRows}')`
);
if (filteredRows?.length) {
await ml.dataFrameAnalyticsTable.openEditFlyout();
}
await ml.dataFrameAnalyticsTable.openEditFlyout(testData.jobId);
});

it('should input the description in the edit form', async () => {
await ml.dataFrameAnalyticsCreation.assertJobDescriptionEditInputExists();
await ml.dataFrameAnalyticsCreation.setJobDescriptionEdit(editedDescription);
await ml.dataFrameAnalyticsEdit.assertJobDescriptionEditInputExists();
await ml.dataFrameAnalyticsEdit.setJobDescriptionEdit(editedDescription);
});

it('should input the model memory limit in the edit form', async () => {
await ml.dataFrameAnalyticsCreation.assertJobMmlEditInputExists();
await ml.dataFrameAnalyticsCreation.setJobMmlEdit('21mb');
await ml.dataFrameAnalyticsEdit.assertJobMmlEditInputExists();
await ml.dataFrameAnalyticsEdit.setJobMmlEdit('21mb');
});

it('should submit the edit job form', async () => {
await ml.dataFrameAnalyticsCreation.updateAnalyticsJob();
await ml.dataFrameAnalyticsEdit.updateAnalyticsJob();
});

it('displays details for the created job in the analytics table', async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -168,31 +168,34 @@ export default function ({ getService }: FtrProviderContext) {
);
});

it('displays details for the created job in the analytics table', async () => {
await ml.dataFrameAnalyticsTable.assertAnalyticsRowFields(testData.jobId, {
id: testData.jobId,
description: testData.jobDescription,
sourceIndex: testData.source,
destinationIndex: testData.destinationIndex,
type: testData.expected.row.type,
status: testData.expected.row.status,
progress: testData.expected.row.progress,
});
});

it('should open the edit form for the created job in the analytics table', async () => {
await ml.dataFrameAnalyticsTable.filterWithSearchString(testData.jobId);
const rows = await ml.dataFrameAnalyticsTable.parseAnalyticsTable();
const filteredRows = rows.filter((row) => row.id === testData.jobId);
expect(filteredRows).to.have.length(
1,
`Filtered analytics table should have 1 row for job id '${testData.jobId}' (got matching items '${filteredRows}')`
);
if (filteredRows?.length) {
await ml.dataFrameAnalyticsTable.openEditFlyout();
}
await ml.dataFrameAnalyticsTable.openEditFlyout(testData.jobId);
});

it('should input the description in the edit form', async () => {
await ml.dataFrameAnalyticsCreation.assertJobDescriptionEditInputExists();
await ml.dataFrameAnalyticsCreation.setJobDescriptionEdit(editedDescription);
await ml.dataFrameAnalyticsEdit.assertJobDescriptionEditInputExists();
await ml.dataFrameAnalyticsEdit.setJobDescriptionEdit(editedDescription);
});

it('should input the model memory limit in the edit form', async () => {
await ml.dataFrameAnalyticsCreation.assertJobMmlEditInputExists();
await ml.dataFrameAnalyticsCreation.setJobMmlEdit('21mb');
await ml.dataFrameAnalyticsEdit.assertJobMmlEditInputExists();
await ml.dataFrameAnalyticsEdit.setJobMmlEdit('21mb');
});

it('should submit the edit job form', async () => {
await ml.dataFrameAnalyticsCreation.updateAnalyticsJob();
await ml.dataFrameAnalyticsEdit.updateAnalyticsJob();
});

it('displays details for the created job in the analytics table', async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,14 +88,6 @@ export function MachineLearningDataFrameAnalyticsCreationProvider(
await testSubjects.existOrFail('mlDFAnalyticsJobCreationJobDescription');
},

async assertJobDescriptionEditInputExists() {
await testSubjects.existOrFail('mlAnalyticsEditFlyoutDescriptionInput');
},

async assertJobMmlEditInputExists() {
await testSubjects.existOrFail('mlAnalyticsEditFlyoutmodelMemoryLimitInput');
},

async assertJobIdValue(expectedValue: string) {
const actualJobId = await testSubjects.getAttribute(
'mlAnalyticsCreateJobFlyoutJobIdInput',
Expand All @@ -118,28 +110,6 @@ export function MachineLearningDataFrameAnalyticsCreationProvider(
);
},

async assertJobDescriptionEditValue(expectedValue: string) {
const actualJobDescription = await testSubjects.getAttribute(
'mlAnalyticsEditFlyoutDescriptionInput',
'value'
);
expect(actualJobDescription).to.eql(
expectedValue,
`Job description edit should be '${expectedValue}' (got '${actualJobDescription}')`
);
},

async assertJobMmlEditValue(expectedValue: string) {
const actualMml = await testSubjects.getAttribute(
'mlAnalyticsEditFlyoutmodelMemoryLimitInput',
'value'
);
expect(actualMml).to.eql(
expectedValue,
`Job model memory limit edit should be '${expectedValue}' (got '${actualMml}')`
);
},

async setJobId(jobId: string) {
await mlCommon.setValueWithChecks('mlAnalyticsCreateJobFlyoutJobIdInput', jobId, {
clearWithKeyboard: true,
Expand All @@ -154,20 +124,6 @@ export function MachineLearningDataFrameAnalyticsCreationProvider(
await this.assertJobDescriptionValue(jobDescription);
},

async setJobDescriptionEdit(jobDescription: string) {
await mlCommon.setValueWithChecks('mlAnalyticsEditFlyoutDescriptionInput', jobDescription, {
clearWithKeyboard: true,
});
await this.assertJobDescriptionEditValue(jobDescription);
},

async setJobMmlEdit(mml: string) {
await mlCommon.setValueWithChecks('mlAnalyticsEditFlyoutmodelMemoryLimitInput', mml, {
clearWithKeyboard: true,
});
await this.assertJobMmlEditValue(mml);
},

async assertSourceDataPreviewExists() {
await testSubjects.existOrFail('mlAnalyticsCreationDataGrid loaded', { timeout: 5000 });
},
Expand Down Expand Up @@ -525,11 +481,6 @@ export function MachineLearningDataFrameAnalyticsCreationProvider(
await testSubjects.existOrFail('mlAnalyticsCreateJobWizardCreateButton');
},

async updateAnalyticsJob() {
await testSubjects.existOrFail('analyticsEditFlyoutUpdateButton');
await testSubjects.click('analyticsEditFlyoutUpdateButton');
},

async isCreateButtonDisabled() {
const isEnabled = await testSubjects.isEnabled('mlAnalyticsCreateJobWizardCreateButton');
return !isEnabled;
Expand Down
64 changes: 64 additions & 0 deletions x-pack/test/functional/services/ml/data_frame_analytics_edit.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/
import expect from '@kbn/expect';

import { FtrProviderContext } from '../../ftr_provider_context';
import { MlCommon } from './common';
import { MlApi } from './api';

export function MachineLearningDataFrameAnalyticsEditProvider(
{ getService }: FtrProviderContext,
mlCommon: MlCommon,
mlApi: MlApi
) {
const testSubjects = getService('testSubjects');

return {
async assertJobDescriptionEditInputExists() {
await testSubjects.existOrFail('mlAnalyticsEditFlyoutDescriptionInput');
},
async assertJobDescriptionEditValue(expectedValue: string) {
const actualJobDescription = await testSubjects.getAttribute(
'mlAnalyticsEditFlyoutDescriptionInput',
'value'
);
expect(actualJobDescription).to.eql(
expectedValue,
`Job description edit should be '${expectedValue}' (got '${actualJobDescription}')`
);
},
async assertJobMmlEditInputExists() {
await testSubjects.existOrFail('mlAnalyticsEditFlyoutmodelMemoryLimitInput');
},
async assertJobMmlEditValue(expectedValue: string) {
const actualMml = await testSubjects.getAttribute(
'mlAnalyticsEditFlyoutmodelMemoryLimitInput',
'value'
);
expect(actualMml).to.eql(
expectedValue,
`Job model memory limit edit should be '${expectedValue}' (got '${actualMml}')`
);
},
async setJobDescriptionEdit(jobDescription: string) {
await mlCommon.setValueWithChecks('mlAnalyticsEditFlyoutDescriptionInput', jobDescription, {
clearWithKeyboard: true,
});
await this.assertJobDescriptionEditValue(jobDescription);
},

async setJobMmlEdit(mml: string) {
await mlCommon.setValueWithChecks('mlAnalyticsEditFlyoutmodelMemoryLimitInput', mml, {
clearWithKeyboard: true,
});
await this.assertJobMmlEditValue(mml);
},
async updateAnalyticsJob() {
await testSubjects.existOrFail('analyticsEditFlyoutUpdateButton');
await testSubjects.click('analyticsEditFlyoutUpdateButton');
},
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -88,10 +88,8 @@ export function MachineLearningDataFrameAnalyticsTableProvider({ getService }: F
await testSubjects.existOrFail('mlAnalyticsJobViewButton');
}

public async openEditFlyout() {
await testSubjects.existOrFail('euiCollapsedItemActionsButton', { timeout: 5000 });
await testSubjects.click('euiCollapsedItemActionsButton');
await testSubjects.existOrFail('mlAnalyticsJobEditButton', { timeout: 5000 });
public async openEditFlyout(analyticsId: string) {
await this.openRowActions(analyticsId);
await testSubjects.click('mlAnalyticsJobEditButton');
await testSubjects.existOrFail('analyticsEditFlyout', { timeout: 5000 });
}
Expand Down
7 changes: 7 additions & 0 deletions x-pack/test/functional/services/ml/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import { MachineLearningCommonProvider } from './common';
import { MachineLearningCustomUrlsProvider } from './custom_urls';
import { MachineLearningDataFrameAnalyticsProvider } from './data_frame_analytics';
import { MachineLearningDataFrameAnalyticsCreationProvider } from './data_frame_analytics_creation';
import { MachineLearningDataFrameAnalyticsEditProvider } from './data_frame_analytics_edit';
import { MachineLearningDataFrameAnalyticsTableProvider } from './data_frame_analytics_table';
import { MachineLearningDataVisualizerProvider } from './data_visualizer';
import { MachineLearningDataVisualizerFileBasedProvider } from './data_visualizer_file_based';
Expand Down Expand Up @@ -47,6 +48,11 @@ export function MachineLearningProvider(context: FtrProviderContext) {
common,
api
);
const dataFrameAnalyticsEdit = MachineLearningDataFrameAnalyticsEditProvider(
context,
common,
api
);
const dataFrameAnalyticsTable = MachineLearningDataFrameAnalyticsTableProvider(context);
const dataVisualizer = MachineLearningDataVisualizerProvider(context);
const dataVisualizerFileBased = MachineLearningDataVisualizerFileBasedProvider(context, common);
Expand Down Expand Up @@ -76,6 +82,7 @@ export function MachineLearningProvider(context: FtrProviderContext) {
customUrls,
dataFrameAnalytics,
dataFrameAnalyticsCreation,
dataFrameAnalyticsEdit,
dataFrameAnalyticsTable,
dataVisualizer,
dataVisualizerFileBased,
Expand Down

0 comments on commit 019b5f3

Please sign in to comment.