mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
# 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:
parent
4f44a52dd2
commit
56d8eb179d
25 changed files with 149 additions and 87 deletions
|
@ -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',
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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'] });
|
||||
},
|
||||
|
||||
|
|
|
@ -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 () => {
|
||||
|
|
|
@ -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 () => {
|
||||
|
|
|
@ -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 () => {
|
||||
|
|
|
@ -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 () => {
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
|
||||
|
|
|
@ -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'));
|
||||
});
|
||||
}
|
|
@ -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();
|
||||
});
|
||||
};
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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'));
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
|
||||
|
|
|
@ -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'));
|
||||
});
|
||||
}
|
|
@ -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();
|
||||
});
|
||||
};
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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'));
|
||||
});
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue