[Cases] Fix flaky test on e2e view case (#129558)

This commit is contained in:
Christos Nasikas 2022-04-11 15:22:52 +03:00 committed by GitHub
parent ae39e1bae7
commit 64910b3122
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 34 additions and 14 deletions

View file

@ -12,6 +12,7 @@ export function CasesCreateViewServiceProvider({ getService, getPageObject }: Ft
const testSubjects = getService('testSubjects');
const find = getService('find');
const comboBox = getService('comboBox');
const config = getService('config');
return {
/**
@ -57,7 +58,9 @@ export function CasesCreateViewServiceProvider({ getService, getPageObject }: Ft
// save
await testSubjects.click('create-case-submit');
await testSubjects.existOrFail('case-view-title');
await testSubjects.existOrFail('case-view-title', {
timeout: config.get('timeouts.waitFor'),
});
},
};
}

View file

@ -16,6 +16,7 @@ export function CasesTableServiceProvider({ getService, getPageObject }: FtrProv
const find = getService('find');
const header = getPageObject('header');
const retry = getService('retry');
const config = getService('config');
return {
/**
@ -25,8 +26,27 @@ export function CasesTableServiceProvider({ getService, getPageObject }: FtrProv
*/
async goToFirstListedCase() {
await testSubjects.existOrFail('cases-table');
await testSubjects.existOrFail('case-details-link', {
timeout: config.get('timeouts.waitFor'),
});
await testSubjects.click('case-details-link');
await testSubjects.existOrFail('case-view-title');
await testSubjects.existOrFail('case-view-title', {
timeout: config.get('timeouts.waitFor'),
});
},
async deleteFirstListedCase() {
await testSubjects.existOrFail('action-delete', {
timeout: config.get('timeouts.waitFor'),
});
await testSubjects.click('action-delete');
await testSubjects.existOrFail('confirmModalConfirmButton', {
timeout: config.get('timeouts.waitFor'),
});
await testSubjects.click('confirmModalConfirmButton');
await testSubjects.existOrFail('euiToastHeader', {
timeout: config.get('timeouts.waitFor'),
});
},
async bulkDeleteAllCases() {
@ -55,8 +75,8 @@ export function CasesTableServiceProvider({ getService, getPageObject }: FtrProv
},
async validateCasesTableHasNthRows(nrRows: number) {
await retry.tryForTime(2000, async () => {
const rows = await find.allByCssSelector('[data-test-subj*="cases-table-row-"', 100);
await retry.tryForTime(3000, async () => {
const rows = await find.allByCssSelector('[data-test-subj*="cases-table-row-"');
expect(rows.length).equal(nrRows);
});
},
@ -66,6 +86,7 @@ export function CasesTableServiceProvider({ getService, getPageObject }: FtrProv
this.refreshTable();
return await testSubjects.exists('case-details-link');
});
await header.waitUntilLoadingHasFinished();
},
async waitForCasesToBeDeleted() {

View file

@ -6,7 +6,6 @@
*/
import expect from '@kbn/expect';
import uuid from 'uuid';
import { FtrProviderContext } from '../../ftr_provider_context';
import { CaseStatuses } from '../../../../plugins/cases/common';
@ -64,9 +63,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
it('deletes a case correctly from the list', async () => {
await testSubjects.click('action-delete');
await testSubjects.click('confirmModalConfirmButton');
await testSubjects.existOrFail('euiToastHeader');
await cases.casesTable.deleteFirstListedCase();
await cases.casesTable.waitForTableToFinishLoading();
await retry.tryForTime(2000, async () => {
@ -83,13 +80,13 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
describe('filtering', () => {
const id = uuid.v4();
const caseTitle = 'matchme-' + id;
const caseTitle = 'matchme';
before(async () => {
await cases.api.createNthRandomCases(2);
await cases.api.createCase({ title: caseTitle, tags: ['one'] });
await cases.api.createCase({ tags: ['two'] });
await cases.api.createCase({ title: 'test2', tags: ['two'] });
await cases.api.createCase({ title: 'test3' });
await cases.api.createCase({ title: 'test4' });
await header.waitUntilLoadingHasFinished();
await cases.casesTable.waitForCasesToBeListed();
});

View file

@ -19,8 +19,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
const retry = getService('retry');
const comboBox = getService('comboBox');
// Failing: See https://github.com/elastic/kibana/issues/129248
describe.skip('View case', () => {
describe('View case', () => {
describe('properties', () => {
// create the case to test on
before(async () => {