[ML] Functional tests - always refresh job list before filtering (#123195)

This PR stabilizes tests that are filtering the anomaly detection job list by making sure the list is always refreshed before filtering.
This commit is contained in:
Robert Oskamp 2022-02-04 13:41:00 +01:00 committed by GitHub
parent c1c75a580f
commit a3359b7d15
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 11 additions and 40 deletions

View file

@ -433,7 +433,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.testExecution.logTestStep(
'job creation displays the created job in the job list'
);
await ml.jobTable.refreshJobList();
await ml.jobTable.filterWithSearchString(testData.jobId, 1);
await ml.testExecution.logTestStep(
@ -649,7 +648,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.testExecution.logTestStep(
'job cloning displays the created job in the job list'
);
await ml.jobTable.refreshJobList();
await ml.jobTable.filterWithSearchString(testData.jobIdClone, 1);
await ml.testExecution.logTestStep(

View file

@ -396,7 +396,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.testExecution.logTestStep(
'check that the single metric viewer button is enabled'
);
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(testData.jobConfig.job_id, 1);
await ml.jobTable.assertJobActionSingleMetricViewerButtonEnabled(
@ -442,7 +441,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.testExecution.logTestStep(
'check that the single metric viewer button is disabled'
);
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(testData.jobConfig.job_id, 1);
await ml.jobTable.assertJobActionSingleMetricViewerButtonEnabled(

View file

@ -58,7 +58,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToMl();
await ml.navigation.navigateToJobManagement();
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobId, 1);
await ml.jobTable.clickOpenJobInSingleMetricViewerButton(jobId);
@ -90,7 +89,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.testExecution.logTestStep('should display created annotation in job list');
await ml.navigation.navigateToJobManagement();
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobId, 1);
await ml.jobTable.openAnnotationsTab(jobId);
await ml.jobAnnotations.assertAnnotationExists({
@ -125,7 +123,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToMl();
await ml.navigation.navigateToJobManagement();
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobId, 1);
await ml.jobTable.openAnnotationsTab(jobId);
await ml.jobAnnotations.assertAnnotationContentById(
@ -179,7 +176,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.testExecution.logTestStep('should display edited annotation in job list');
await ml.navigation.navigateToJobManagement();
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobId, 1);
await ml.jobTable.openAnnotationsTab(jobId);
await ml.jobAnnotations.assertAnnotationContentById(annotationId, expectedEditedAnnotation);
@ -200,7 +196,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToMl();
await ml.navigation.navigateToJobManagement();
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobId, 1);
await ml.jobTable.openAnnotationsTab(jobId);
@ -221,7 +216,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToMl();
await ml.navigation.navigateToJobManagement();
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobId, 1);
await ml.jobTable.clickOpenJobInSingleMetricViewerButton(jobId);
@ -257,7 +251,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.testExecution.logTestStep('does not show the deleted annotation in job list');
await ml.navigation.navigateToJobManagement();
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobId, 1);
await ml.jobTable.openAnnotationsTab(jobId);
await ml.jobAnnotations.assertAnnotationsRowMissing(annotationId);

View file

@ -102,7 +102,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToJobManagement();
await ml.testExecution.logTestStep('open job in anomaly explorer');
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(testData.jobConfig.job_id, 1);
await ml.jobTable.clickOpenJobInAnomalyExplorerButton(testData.jobConfig.job_id);

View file

@ -202,7 +202,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToMl();
await ml.navigation.navigateToJobManagement();
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobId, 1);
await ml.testExecution.logTestStep(
@ -318,7 +317,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToMl();
await ml.navigation.navigateToJobManagement();
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobIdClone, 1);
await ml.testExecution.logTestStep(
@ -350,7 +348,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.testExecution.logTestStep(
'job deletion does not display the deleted job in the job list any more'
);
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobIdClone, 0);
await ml.testExecution.logTestStep(

View file

@ -313,7 +313,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.testExecution.logTestStep(
'job creation displays the created job in the job list'
);
await ml.jobTable.refreshJobList();
await ml.jobTable.filterWithSearchString(testData.jobId, 1);
await ml.testExecution.logTestStep(

View file

@ -63,7 +63,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToJobManagement();
await ml.testExecution.logTestStep('open job in single metric viewer');
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(JOB_CONFIG.job_id, 1);
await ml.jobTable.clickOpenJobInSingleMetricViewerButton(JOB_CONFIG.job_id);

View file

@ -205,7 +205,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToMl();
await ml.navigation.navigateToJobManagement();
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobId, 1);
await ml.testExecution.logTestStep(
@ -338,7 +337,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToMl();
await ml.navigation.navigateToJobManagement();
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobIdClone, 1);
await ml.testExecution.logTestStep(

View file

@ -231,7 +231,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToMl();
await ml.navigation.navigateToJobManagement();
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobId, 1);
await ml.testExecution.logTestStep(
@ -375,7 +374,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToMl();
await ml.navigation.navigateToJobManagement();
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobIdClone, 1);
await ml.testExecution.logTestStep(

View file

@ -411,7 +411,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToMl();
await ml.navigation.navigateToJobManagement();
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(testData.jobId, 1);
await ml.testExecution.logTestStep(

View file

@ -185,7 +185,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToMl();
await ml.navigation.navigateToJobManagement();
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobId, 1);
await ml.testExecution.logTestStep(
@ -321,7 +320,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToMl();
await ml.navigation.navigateToJobManagement();
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobIdClone, 1);
await ml.testExecution.logTestStep(
@ -353,7 +351,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.testExecution.logTestStep(
'job deletion does not display the deleted job in the job list any more'
);
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobIdClone, 0);
await ml.testExecution.logTestStep(

View file

@ -135,7 +135,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.jobWizardCommon.assertCreateJobButtonExists();
await ml.jobWizardCommon.createJobWithoutDatafeedStart();
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobId, 1);
await ml.testExecution.logTestStep(

View file

@ -64,7 +64,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToJobManagement();
await ml.testExecution.logTestStep('open job in single metric viewer');
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(JOB_CONFIG.job_id, 1);
await ml.jobTable.clickOpenJobInSingleMetricViewerButton(JOB_CONFIG.job_id);
@ -152,7 +151,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToJobManagement();
await ml.testExecution.logTestStep('open job in single metric viewer');
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(jobConfig.job_id, 1);
await ml.jobTable.clickOpenJobInSingleMetricViewerButton(jobConfig.job_id);

View file

@ -496,7 +496,7 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToStackManagementJobsListPage();
await ml.testExecution.logTestStep('should display the AD job in the list');
await ml.jobTable.filterWithSearchString(adJobId, 1);
await ml.jobTable.filterWithSearchString(adJobId, 1, 'stackMgmtJobList');
await ml.testExecution.logTestStep(
'should load the analytics jobs list page in stack management'

View file

@ -75,12 +75,11 @@ export default function ({ getService }: FtrProviderContext) {
it('ensures jobs have been imported', async () => {
if (testData.expected.jobType === 'anomaly-detector') {
await ml.navigation.navigateToStackManagementJobsListPageAnomalyDetectionTab();
await ml.jobTable.refreshJobList('stackMgmtJobList');
for (const id of testData.expected.jobIds) {
await ml.jobTable.filterWithSearchString(id);
await ml.jobTable.filterWithSearchString(id, 1, 'stackMgmtJobList');
}
for (const id of testData.expected.skippedJobIds) {
await ml.jobTable.filterWithSearchString(id, 0);
await ml.jobTable.filterWithSearchString(id, 0, 'stackMgmtJobList');
}
} else {
await ml.navigation.navigateToStackManagementJobsListPageAnalyticsTab();

View file

@ -179,7 +179,7 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToStackManagementJobsListPage();
// AD
await ml.jobTable.filterWithSearchString(testData.adJobId);
await ml.jobTable.filterWithSearchString(testData.adJobId, 1, 'stackMgmtJobList');
await ml.stackManagementJobs.assertADJobRowSpaces(testData.adJobId, [
testData.initialSpace,
]);
@ -223,7 +223,7 @@ export default function ({ getService }: FtrProviderContext) {
// AD
await ml.navigation.navigateToStackManagementJobsListPageAnomalyDetectionTab();
await ml.jobTable.filterWithSearchString(testData.adJobId);
await ml.jobTable.filterWithSearchString(testData.adJobId, 1, 'stackMgmtJobList');
await ml.stackManagementJobs.assertADJobRowSpaces(testData.adJobId, expectedJobRowSpaces);
// DFA

View file

@ -244,8 +244,13 @@ export function MachineLearningJobTableProvider(
await testSubjects.existOrFail('mlJobListTable loaded', { timeout: 30 * 1000 });
}
public async filterWithSearchString(filter: string, expectedRowCount: number = 1) {
public async filterWithSearchString(
filter: string,
expectedRowCount: number = 1,
tableEnvironment: 'mlAnomalyDetection' | 'stackMgmtJobList' = 'mlAnomalyDetection'
) {
await this.waitForJobsToLoad();
await this.refreshJobList(tableEnvironment);
const searchBar = await testSubjects.find('mlJobListSearchBar');
const searchBarInput = await searchBar.findByTagName('input');
await searchBarInput.clearValueWithKeyboard();

View file

@ -86,7 +86,6 @@ export default function ({ getService }: FtrProviderContext) {
await ml.navigation.navigateToJobManagement();
await ml.testExecution.logTestStep('open job in anomaly explorer');
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(ecommerceJobConfig.job_id, 1);
await ml.jobTable.clickOpenJobInAnomalyExplorerButton(ecommerceJobConfig.job_id);
await ml.commonUI.waitForMlLoadingIndicatorToDisappear();

View file

@ -229,7 +229,6 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
await elasticChart.setNewChartUiDebugFlag(true);
await ml.testExecution.logTestStep('open job in anomaly explorer');
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(ecommerceGeoJobConfig.job_id, 1);
await ml.jobTable.clickOpenJobInAnomalyExplorerButton(ecommerceGeoJobConfig.job_id);
await ml.commonUI.waitForMlLoadingIndicatorToDisappear();
@ -260,7 +259,6 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
await elasticChart.setNewChartUiDebugFlag(true);
await ml.testExecution.logTestStep('open job in anomaly explorer');
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(weblogGeoJobConfig.job_id, 1);
await ml.jobTable.clickOpenJobInAnomalyExplorerButton(weblogGeoJobConfig.job_id);
await ml.commonUI.waitForMlLoadingIndicatorToDisappear();

View file

@ -114,7 +114,6 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
await ml.navigation.navigateToJobManagement();
await ml.testExecution.logTestStep('open job in anomaly explorer');
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(weblogVectorJobConfig.job_id, 1);
await ml.jobTable.clickOpenJobInAnomalyExplorerButton(weblogVectorJobConfig.job_id);
await ml.commonUI.waitForMlLoadingIndicatorToDisappear();

View file

@ -82,7 +82,6 @@ export default function ({ getService }: FtrProviderContext) {
await elasticChart.setNewChartUiDebugFlag(true);
await ml.testExecution.logTestStep('open job in anomaly explorer');
await ml.jobTable.waitForJobsToLoad();
await ml.jobTable.filterWithSearchString(populationJobConfig.job_id, 1);
await ml.jobTable.clickOpenJobInAnomalyExplorerButton(populationJobConfig.job_id);
await ml.commonUI.waitForMlLoadingIndicatorToDisappear();