[8.11] [Cases] Unskip MKI tests (#168924) (#169616)

# Backport

This will backport the following commits from `main` to `8.11`:
- [[Cases] Unskip MKI tests
(#168924)](https://github.com/elastic/kibana/pull/168924)

<!--- Backport version: 8.9.8 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Christos
Nasikas","email":"christos.nasikas@elastic.co"},"sourceCommit":{"committedDate":"2023-10-23T09:21:25Z","message":"[Cases]
Unskip MKI tests (#168924)\n\nCo-authored-by: Kibana Machine
<42973632+kibanamachine@users.noreply.github.com>","sha":"2146a7ef1634a06cf6b4b70edc55dd22fd5b6a4c","branchLabelMapping":{"^v8.12.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","backport:skip","Team:ResponseOps","Feature:Cases","ci:skip-cypress-osquery","v8.11.0","v8.12.0"],"number":168924,"url":"https://github.com/elastic/kibana/pull/168924","mergeCommit":{"message":"[Cases]
Unskip MKI tests (#168924)\n\nCo-authored-by: Kibana Machine
<42973632+kibanamachine@users.noreply.github.com>","sha":"2146a7ef1634a06cf6b4b70edc55dd22fd5b6a4c"}},"sourceBranch":"main","suggestedTargetBranches":["8.11"],"targetPullRequestStates":[{"branch":"8.11","label":"v8.11.0","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.12.0","labelRegex":"^v8.12.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/168924","number":168924,"mergeCommit":{"message":"[Cases]
Unskip MKI tests (#168924)\n\nCo-authored-by: Kibana Machine
<42973632+kibanamachine@users.noreply.github.com>","sha":"2146a7ef1634a06cf6b4b70edc55dd22fd5b6a4c"}}]}]
BACKPORT-->
This commit is contained in:
Christos Nasikas 2023-10-24 15:32:10 +03:00 committed by GitHub
parent 4f44a52dd2
commit 56d8eb179d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 149 additions and 87 deletions

View file

@ -98,7 +98,12 @@ const STANDARD_LIST_TYPES = [
'lens',
'links',
'map',
// cases saved objects
'cases',
'cases-comments',
'cases-user-actions',
'cases-configure',
'cases-connector-mappings',
// synthetics based objects
'synthetics-monitor',
'uptime-dynamic-settings',

View file

@ -96,7 +96,6 @@ export function CasesCommonServiceProvider({ getService, getPageObject }: FtrPro
async expectToasterToContain(content: string) {
const toast = await toasts.getToastElement(1);
expect(await toast.getVisibleText()).to.contain(content);
await toasts.dismissAllToasts();
},
async assertCaseModalVisible(expectVisible = true) {

View file

@ -1197,13 +1197,13 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
it('updates a custom field correctly', async () => {
const summary = await testSubjects.find(`case-text-custom-field-${customFields[0].key}`);
expect(await summary.getVisibleText()).equal('this is a text field value');
const textField = await testSubjects.find(`case-text-custom-field-${customFields[0].key}`);
expect(await textField.getVisibleText()).equal('this is a text field value');
const sync = await testSubjects.find(
const toggle = await testSubjects.find(
`case-toggle-custom-field-form-field-${customFields[1].key}`
);
expect(await sync.getAttribute('aria-checked')).equal('true');
expect(await toggle.getAttribute('aria-checked')).equal('true');
await testSubjects.click(`case-text-custom-field-edit-button-${customFields[0].key}`);
@ -1221,19 +1221,23 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
await testSubjects.click(`case-text-custom-field-submit-button-${customFields[0].key}`);
await header.waitUntilLoadingHasFinished();
await retry.waitFor('update toast exist', async () => {
return await testSubjects.exists('toastCloseButton');
});
await testSubjects.click('toastCloseButton');
await sync.click();
await header.waitUntilLoadingHasFinished();
await toggle.click();
await header.waitUntilLoadingHasFinished();
expect(await summary.getVisibleText()).equal('this is a text field value edited!!');
expect(await textField.getVisibleText()).equal('this is a text field value edited!!');
expect(await sync.getAttribute('aria-checked')).equal('false');
expect(await toggle.getAttribute('aria-checked')).equal('false');
// validate user action
const userActions = await find.allByCssSelector(

View file

@ -61,6 +61,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
const dashboard = getPageObject('dashboard');
const lens = getPageObject('lens');
const listingTable = getService('listingTable');
const toasts = getService('toasts');
const createAttachmentAndNavigate = async (attachment: AttachmentRequest) => {
const caseData = await cases.api.createCase({
@ -249,6 +250,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
*/
await cases.create.createCase({ owner });
await cases.common.expectToasterToContain('has been updated');
await toasts.dismissAllToastsWithChecks();
}
const casesCreatedFromFlyout = await findCases({ supertest });
@ -325,6 +327,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
await testSubjects.click(`cases-table-row-select-${currentCaseId}`);
await cases.common.expectToasterToContain('has been updated');
await toasts.dismissAllToastsWithChecks();
await ensureFirstCommentOwner(currentCaseId, owner);
}
});
@ -387,6 +390,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
await cases.common.expectToasterToContain(`${caseTitle} has been updated`);
await testSubjects.click('toaster-content-case-view-link');
await toasts.dismissAllToastsWithChecks();
const title = await find.byCssSelector('[data-test-subj="editable-title-header-value"]');
expect(await title.getVisibleText()).toEqual(caseTitle);
@ -414,6 +418,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
await cases.common.expectToasterToContain(`${theCaseTitle} has been updated`);
await testSubjects.click('toaster-content-case-view-link');
await toasts.dismissAllToastsWithChecks();
const title = await find.byCssSelector('[data-test-subj="editable-title-header-value"]');
expect(await title.getVisibleText()).toEqual(theCaseTitle);

View file

@ -79,7 +79,7 @@ export function SvlCasesApiServiceProvider({ getService }: FtrProviderContext) {
async deleteAllCaseItems() {
await Promise.all([
this.deleteCasesByESQuery(),
this.deleteCases(),
this.deleteCasesUserActions(),
this.deleteComments(),
this.deleteConfiguration(),
@ -91,7 +91,7 @@ export function SvlCasesApiServiceProvider({ getService }: FtrProviderContext) {
await kbnServer.savedObjects.clean({ types: ['cases-user-actions'] });
},
async deleteCasesByESQuery(): Promise<void> {
async deleteCases(): Promise<void> {
await kbnServer.savedObjects.clean({ types: ['cases'] });
},

View file

@ -14,7 +14,7 @@ export default ({ getService }: FtrProviderContext): void => {
describe('get_case', () => {
afterEach(async () => {
await svlCases.api.deleteCasesByESQuery();
await svlCases.api.deleteCases();
});
it('should return a case', async () => {

View file

@ -15,7 +15,7 @@ export default ({ getService }: FtrProviderContext): void => {
describe('post_case', () => {
afterEach(async () => {
await svlCases.api.deleteCasesByESQuery();
await svlCases.api.deleteCases();
});
it('should create a case', async () => {

View file

@ -13,7 +13,7 @@ export default ({ getService }: FtrProviderContext): void => {
describe('get_case', () => {
afterEach(async () => {
await svlCases.api.deleteCasesByESQuery();
await svlCases.api.deleteCases();
});
it('should return a case', async () => {

View file

@ -15,7 +15,7 @@ export default ({ getService }: FtrProviderContext): void => {
describe('post_case', () => {
afterEach(async () => {
await svlCases.api.deleteCasesByESQuery();
await svlCases.api.deleteCases();
});
it('should create a case', async () => {

View file

@ -13,6 +13,7 @@ import { SvlObltNavigationServiceProvider } from './svl_oblt_navigation';
import { SvlSearchNavigationServiceProvider } from './svl_search_navigation';
import { SvlSecNavigationServiceProvider } from './svl_sec_navigation';
import { SvlCommonScreenshotsProvider } from './svl_common_screenshots';
import { SvlCasesServiceProvider } from '../../api_integration/services/svl_cases';
import { MachineLearningProvider } from './ml';
export const services = {
@ -26,5 +27,6 @@ export const services = {
svlSearchNavigation: SvlSearchNavigationServiceProvider,
svlSecNavigation: SvlSecNavigationServiceProvider,
svlCommonScreenshots: SvlCommonScreenshotsProvider,
svlCases: SvlCasesServiceProvider,
svlMl: MachineLearningProvider,
};

View file

@ -18,36 +18,37 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
const esArchiver = getService('esArchiver');
const kibanaServer = getService('kibanaServer');
const cases = getService('cases');
const svlCases = getService('svlCases');
const find = getService('find');
const toasts = getService('toasts');
describe('Cases persistable attachments', () => {
describe('lens visualization', () => {
before(async () => {
await svlCommonPage.login();
await kibanaServer.savedObjects.cleanStandardList();
await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/logstash_functional');
await kibanaServer.importExport.load(
'x-pack/test/functional/fixtures/kbn_archiver/lens/lens_basic.json'
);
await svlObltNavigation.navigateToLandingPage();
await svlCommonNavigation.sidenav.clickLink({ deepLinkId: 'dashboards' });
await dashboard.clickNewDashboard();
await lens.createAndAddLensFromDashboard({});
await dashboard.waitForRenderComplete();
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
await esArchiver.unload('x-pack/test/functional/es_archives/logstash_functional');
await kibanaServer.importExport.unload(
'x-pack/test/functional/fixtures/kbn_archiver/lens/lens_basic.json'
);
await kibanaServer.savedObjects.cleanStandardList();
await svlCommonPage.forceLogout();
});
@ -70,8 +71,8 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
await testSubjects.click('create-case-submit');
await cases.common.expectToasterToContain(`${caseTitle} has been updated`);
await testSubjects.click('toaster-content-case-view-link');
await toasts.dismissAllToastsWithChecks();
if (await testSubjects.exists('appLeaveConfirmModal')) {
await testSubjects.exists('confirmModalConfirmButton');
@ -105,6 +106,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
await cases.common.expectToasterToContain(`${theCaseTitle} has been updated`);
await testSubjects.click('toaster-content-case-view-link');
await toasts.dismissAllToastsWithChecks();
if (await testSubjects.exists('appLeaveConfirmModal')) {
await testSubjects.exists('confirmModalConfirmButton');

View file

@ -15,6 +15,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
const svlObltNavigation = getService('svlObltNavigation');
const testSubjects = getService('testSubjects');
const cases = getService('cases');
const svlCases = getService('svlCases');
const toasts = getService('toasts');
const retry = getService('retry');
const find = getService('find');
@ -29,7 +30,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
await svlCommonPage.forceLogout();
});

View file

@ -18,6 +18,7 @@ export default ({ getService, getPageObject }: FtrProviderContext) => {
describe('Create Case', function () {
const find = getService('find');
const cases = getService('cases');
const svlCases = getService('svlCases');
const testSubjects = getService('testSubjects');
const svlCommonPage = getPageObject('svlCommonPage');
const config = getService('config');
@ -33,7 +34,7 @@ export default ({ getService, getPageObject }: FtrProviderContext) => {
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
await svlCommonPage.forceLogout();
});

View file

@ -0,0 +1,18 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { FtrProviderContext } from '../../../ftr_provider_context';
export default function ({ loadTestFile }: FtrProviderContext) {
describe('Serverless Observability Cases', function () {
loadTestFile(require.resolve('./attachment_framework'));
loadTestFile(require.resolve('./view_case'));
loadTestFile(require.resolve('./configure'));
loadTestFile(require.resolve('./create_case_form'));
loadTestFile(require.resolve('./list_view'));
});
}

View file

@ -14,6 +14,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
const header = getPageObject('header');
const testSubjects = getService('testSubjects');
const cases = getService('cases');
const svlCases = getService('svlCases');
const svlCommonNavigation = getPageObject('svlCommonNavigation');
const svlCommonPage = getPageObject('svlCommonPage');
const svlObltNavigation = getService('svlObltNavigation');
@ -26,7 +27,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
await cases.casesTable.waitForCasesToBeDeleted();
await svlCommonPage.forceLogout();
});
@ -105,7 +106,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
afterEach(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
await cases.casesTable.waitForCasesToBeDeleted();
});
@ -168,7 +169,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
await cases.casesTable.waitForCasesToBeDeleted();
});
@ -272,6 +273,7 @@ const createNCasesBeforeDeleteAllAfter = (
getService: FtrProviderContext['getService']
) => {
const cases = getService('cases');
const svlCases = getService('svlCases');
const header = getPageObject('header');
before(async () => {
@ -281,7 +283,7 @@ const createNCasesBeforeDeleteAllAfter = (
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
await cases.casesTable.waitForCasesToBeDeleted();
});
};

View file

@ -26,6 +26,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
const header = getPageObject('header');
const testSubjects = getService('testSubjects');
const cases = getService('cases');
const svlCases = getService('svlCases');
const find = getService('find');
const retry = getService('retry');
@ -39,7 +40,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
await svlCommonPage.forceLogout();
});
@ -278,7 +279,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
after(async () => {
await cases.testResources.removeKibanaSampleData('logs');
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
});
it('adds lens visualization in description', async () => {
@ -323,7 +324,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
});
it('initially renders user actions list correctly', async () => {
@ -435,7 +436,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
});
it('should set the cases title', async () => {
@ -496,17 +497,17 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
afterEach(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
});
it('updates a custom field correctly', async () => {
const summary = await testSubjects.find(`case-text-custom-field-${customFields[0].key}`);
expect(await summary.getVisibleText()).equal('this is a text field value');
const textField = await testSubjects.find(`case-text-custom-field-${customFields[0].key}`);
expect(await textField.getVisibleText()).equal('this is a text field value');
const sync = await testSubjects.find(
const toggle = await testSubjects.find(
`case-toggle-custom-field-form-field-${customFields[1].key}`
);
expect(await sync.getAttribute('aria-checked')).equal('true');
expect(await toggle.getAttribute('aria-checked')).equal('true');
await testSubjects.click(`case-text-custom-field-edit-button-${customFields[0].key}`);
@ -524,19 +525,23 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
await testSubjects.click(`case-text-custom-field-submit-button-${customFields[0].key}`);
await header.waitUntilLoadingHasFinished();
await retry.waitFor('update toast exist', async () => {
return await testSubjects.exists('toastCloseButton');
});
await testSubjects.click('toastCloseButton');
await sync.click();
await header.waitUntilLoadingHasFinished();
await toggle.click();
await header.waitUntilLoadingHasFinished();
expect(await summary.getVisibleText()).equal('this is a text field value edited!!');
expect(await textField.getVisibleText()).equal('this is a text field value edited!!');
expect(await sync.getAttribute('aria-checked')).equal('false');
expect(await toggle.getAttribute('aria-checked')).equal('false');
// validate user action
const userActions = await find.allByCssSelector(

View file

@ -12,12 +12,8 @@ export default function ({ loadTestFile }: FtrProviderContext) {
loadTestFile(require.resolve('./landing_page'));
loadTestFile(require.resolve('./navigation'));
loadTestFile(require.resolve('./observability_log_explorer'));
loadTestFile(require.resolve('./cases/attachment_framework'));
loadTestFile(require.resolve('./rules/rules_list'));
loadTestFile(require.resolve('./cases/view_case'));
loadTestFile(require.resolve('./cases/configure'));
loadTestFile(require.resolve('./cases/create_case_form'));
loadTestFile(require.resolve('./cases/list_view'));
loadTestFile(require.resolve('./cases'));
loadTestFile(require.resolve('./advanced_settings'));
loadTestFile(require.resolve('./infra'));
loadTestFile(require.resolve('./ml'));

View file

@ -12,40 +12,38 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
const dashboard = getPageObject('dashboard');
const lens = getPageObject('lens');
const svlSecNavigation = getService('svlSecNavigation');
const svlCommonPage = getPageObject('svlCommonPage');
const testSubjects = getService('testSubjects');
const esArchiver = getService('esArchiver');
const kibanaServer = getService('kibanaServer');
const cases = getService('cases');
const svlCases = getService('svlCases');
const find = getService('find');
const retry = getService('retry');
const header = getPageObject('header');
const toasts = getService('toasts');
// Failing
// Issue: https://github.com/elastic/kibana/issues/165135
describe.skip('Cases persistable attachments', () => {
describe('Cases persistable attachments', () => {
describe('lens visualization', () => {
before(async () => {
await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/logstash_functional');
await kibanaServer.importExport.load(
'x-pack/test/functional/fixtures/kbn_archiver/dashboard/feature_controls/security/security.json'
);
await svlCommonPage.login();
await svlSecNavigation.navigateToLandingPage();
await testSubjects.click('solutionSideNavItemLink-dashboards');
await header.waitUntilLoadingHasFinished();
await retry.waitFor('createDashboardButton', async () => {
return await testSubjects.exists('createDashboardButton');
});
await testSubjects.click('createDashboardButton');
await header.waitUntilLoadingHasFinished();
await lens.createAndAddLensFromDashboard({});
await dashboard.waitForRenderComplete();
});
after(async () => {
await cases.api.deleteAllCases();
await esArchiver.unload('x-pack/test/functional/es_archives/logstash_functional');
await kibanaServer.importExport.unload(
'x-pack/test/functional/fixtures/kbn_archiver/lens/lens_basic.json'
);
await svlCases.api.deleteAllCaseItems();
await svlCommonPage.forceLogout();
});
it('adds lens visualization to a new case', async () => {
@ -68,8 +66,8 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
await testSubjects.click('create-case-submit');
await cases.common.expectToasterToContain(`${caseTitle} has been updated`);
await testSubjects.click('toaster-content-case-view-link');
await toasts.dismissAllToastsWithChecks();
if (await testSubjects.exists('appLeaveConfirmModal')) {
await testSubjects.exists('confirmModalConfirmButton');
@ -107,6 +105,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
await cases.common.expectToasterToContain(`${theCaseTitle} has been updated`);
await testSubjects.click('toaster-content-case-view-link');
await toasts.dismissAllToastsWithChecks();
if (await testSubjects.exists('appLeaveConfirmModal')) {
await testSubjects.exists('confirmModalConfirmButton');

View file

@ -14,6 +14,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
const svlSecNavigation = getService('svlSecNavigation');
const testSubjects = getService('testSubjects');
const cases = getService('cases');
const svlCases = getService('svlCases');
const toasts = getService('toasts');
const retry = getService('retry');
const find = getService('find');
@ -30,7 +31,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
await svlCommonPage.forceLogout();
});

View file

@ -18,6 +18,7 @@ export default ({ getService, getPageObject }: FtrProviderContext) => {
describe('Create Case', function () {
const find = getService('find');
const cases = getService('cases');
const svlCases = getService('svlCases');
const testSubjects = getService('testSubjects');
const config = getService('config');
const svlCommonPage = getPageObject('svlCommonPage');
@ -33,7 +34,7 @@ export default ({ getService, getPageObject }: FtrProviderContext) => {
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
await svlCommonPage.forceLogout();
});

View file

@ -0,0 +1,18 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { FtrProviderContext } from '../../../../ftr_provider_context';
export default function ({ loadTestFile }: FtrProviderContext) {
describe('Serverless Security Cases', function () {
loadTestFile(require.resolve('./attachment_framework'));
loadTestFile(require.resolve('./view_case'));
loadTestFile(require.resolve('./create_case_form'));
loadTestFile(require.resolve('./configure'));
loadTestFile(require.resolve('./list_view'));
});
}

View file

@ -14,6 +14,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
const header = getPageObject('header');
const testSubjects = getService('testSubjects');
const cases = getService('cases');
const svlCases = getService('svlCases');
const svlSecNavigation = getService('svlSecNavigation');
const svlCommonPage = getPageObject('svlCommonPage');
@ -27,7 +28,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
await cases.casesTable.waitForCasesToBeDeleted();
await svlCommonPage.forceLogout();
});
@ -106,7 +107,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
afterEach(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
await cases.casesTable.waitForCasesToBeDeleted();
});
@ -169,7 +170,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
await cases.casesTable.waitForCasesToBeDeleted();
});
@ -273,6 +274,7 @@ const createNCasesBeforeDeleteAllAfter = (
getService: FtrProviderContext['getService']
) => {
const cases = getService('cases');
const svlCases = getService('svlCases');
const header = getPageObject('header');
before(async () => {
@ -282,7 +284,7 @@ const createNCasesBeforeDeleteAllAfter = (
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
await cases.casesTable.waitForCasesToBeDeleted();
});
};

View file

@ -26,6 +26,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
const header = getPageObject('header');
const testSubjects = getService('testSubjects');
const cases = getService('cases');
const svlCases = getService('svlCases');
const find = getService('find');
const retry = getService('retry');
@ -39,7 +40,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
await svlCommonPage.forceLogout();
});
@ -277,7 +278,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
after(async () => {
await cases.testResources.removeKibanaSampleData('logs');
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
});
it('adds lens visualization in description', async () => {
@ -322,7 +323,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
});
it('initially renders user actions list correctly', async () => {
@ -434,7 +435,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
});
it('should set the cases title', async () => {
@ -496,17 +497,17 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
});
afterEach(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
});
it('updates a custom field correctly', async () => {
const summary = await testSubjects.find(`case-text-custom-field-${customFields[0].key}`);
expect(await summary.getVisibleText()).equal('this is a text field value');
const textField = await testSubjects.find(`case-text-custom-field-${customFields[0].key}`);
expect(await textField.getVisibleText()).equal('this is a text field value');
const sync = await testSubjects.find(
const toggle = await testSubjects.find(
`case-toggle-custom-field-form-field-${customFields[1].key}`
);
expect(await sync.getAttribute('aria-checked')).equal('true');
expect(await toggle.getAttribute('aria-checked')).equal('true');
await testSubjects.click(`case-text-custom-field-edit-button-${customFields[0].key}`);
@ -524,19 +525,23 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
await testSubjects.click(`case-text-custom-field-submit-button-${customFields[0].key}`);
await header.waitUntilLoadingHasFinished();
await retry.waitFor('update toast exist', async () => {
return await testSubjects.exists('toastCloseButton');
});
await testSubjects.click('toastCloseButton');
await sync.click();
await header.waitUntilLoadingHasFinished();
await toggle.click();
await header.waitUntilLoadingHasFinished();
expect(await summary.getVisibleText()).equal('this is a text field value edited!!');
expect(await textField.getVisibleText()).equal('this is a text field value edited!!');
expect(await sync.getAttribute('aria-checked')).equal('false');
expect(await toggle.getAttribute('aria-checked')).equal('false');
// validate user action
const userActions = await find.allByCssSelector(

View file

@ -12,11 +12,7 @@ export default function ({ loadTestFile }: FtrProviderContext) {
loadTestFile(require.resolve('./ftr/landing_page'));
loadTestFile(require.resolve('./ftr/navigation'));
loadTestFile(require.resolve('./ftr/management'));
loadTestFile(require.resolve('./ftr/cases/attachment_framework'));
loadTestFile(require.resolve('./ftr/cases/view_case'));
loadTestFile(require.resolve('./ftr/cases/create_case_form'));
loadTestFile(require.resolve('./ftr/cases/configure'));
loadTestFile(require.resolve('./ftr/cases/list_view'));
loadTestFile(require.resolve('./ftr/cases'));
loadTestFile(require.resolve('./advanced_settings'));
loadTestFile(require.resolve('./ml'));
});

View file

@ -13,14 +13,14 @@ export const createOneCaseBeforeDeleteAllAfter = (
getService: FtrProviderContext['getService'],
owner: string
) => {
const cases = getService('cases');
const svlCases = getService('svlCases');
before(async () => {
await createAndNavigateToCase(getPageObject, getService, owner);
});
after(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
});
};
@ -29,14 +29,14 @@ export const createOneCaseBeforeEachDeleteAllAfterEach = (
getService: FtrProviderContext['getService'],
owner: string
) => {
const cases = getService('cases');
const svlCases = getService('svlCases');
beforeEach(async () => {
await createAndNavigateToCase(getPageObject, getService, owner);
});
afterEach(async () => {
await cases.api.deleteAllCases();
await svlCases.api.deleteAllCaseItems();
});
};