Skip to content

Commit

Permalink
add more FTR tests
Browse files Browse the repository at this point in the history
  • Loading branch information
pgayvallet committed Apr 27, 2021
1 parent c3f0d79 commit 697739c
Show file tree
Hide file tree
Showing 4 changed files with 102 additions and 29 deletions.
8 changes: 5 additions & 3 deletions test/functional/page_objects/management/saved_objects_page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -294,10 +294,12 @@ export function SavedObjectsPageProvider({ getService, getPageObjects }: FtrProv
return await testSubjects.isEnabled('savedObjectsManagementDelete');
}

async clickDelete() {
async clickDelete({ confirmDelete = true }: { confirmDelete?: boolean } = {}) {
await testSubjects.click('savedObjectsManagementDelete');
await testSubjects.click('confirmModalConfirmButton');
await this.waitTableIsLoaded();
if (confirmDelete) {
await testSubjects.click('confirmModalConfirmButton');
await this.waitTableIsLoaded();
}
}

async getImportWarnings() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,22 @@
* Side Public License, v 1.
*/

import path from 'path';
import expect from '@kbn/expect';
import { PluginFunctionalProviderContext } from '../../services';

export default function ({ getService }: PluginFunctionalProviderContext) {
const fixturePaths = {
hiddenImportable: path.join(__dirname, 'exports', '_import_hidden_importable.ndjson'),
hiddenNonImportable: path.join(__dirname, 'exports', '_import_hidden_non_importable.ndjson'),
};

export default function ({ getService, getPageObjects }: PluginFunctionalProviderContext) {
const PageObjects = getPageObjects(['common', 'settings', 'header', 'savedObjects']);
const supertest = getService('supertest');
const esArchiver = getService('esArchiver');
const testSubjects = getService('testSubjects');

describe('TOTO saved objects management with hidden types', () => {
describe('saved objects management with hidden types', () => {
before(async () => {
await esArchiver.load(
'../functional/fixtures/es_archiver/saved_objects_management/hidden_types'
Expand All @@ -26,31 +34,94 @@ export default function ({ getService }: PluginFunctionalProviderContext) {
);
});

it('should flag the object as hidden in its meta', async () => {
await supertest
.get('/api/kibana/management/saved_objects/_find?type=test-actions-export-hidden')
.set('kbn-xsrf', 'true')
.expect(200)
.then((resp) => {
expect(
resp.body.saved_objects.map((obj: any) => ({
id: obj.id,
type: obj.type,
hidden: obj.meta.hiddenType,
}))
).to.eql([
{
id: 'obj_1',
type: 'test-actions-export-hidden',
hidden: true,
},
{
id: 'obj_2',
type: 'test-actions-export-hidden',
hidden: true,
},
]);
beforeEach(async () => {
await PageObjects.settings.navigateTo();
await PageObjects.settings.clickKibanaSavedObjects();
});

describe('API calls', () => {
it('should flag the object as hidden in its meta', async () => {
await supertest
.get('/api/kibana/management/saved_objects/_find?type=test-actions-export-hidden')
.set('kbn-xsrf', 'true')
.expect(200)
.then((resp) => {
expect(
resp.body.saved_objects.map((obj: any) => ({
id: obj.id,
type: obj.type,
hidden: obj.meta.hiddenType,
}))
).to.eql([
{
id: 'obj_1',
type: 'test-actions-export-hidden',
hidden: true,
},
{
id: 'obj_2',
type: 'test-actions-export-hidden',
hidden: true,
},
]);
});
});
});

describe('Delete modal', () => {
it('should display a warning then trying to delete hidden saved objects', async () => {
await PageObjects.savedObjects.clickCheckboxByTitle('A Pie');
await PageObjects.savedObjects.clickCheckboxByTitle('A Dashboard');
await PageObjects.savedObjects.clickCheckboxByTitle('hidden object 1');

await PageObjects.savedObjects.clickDelete({ confirmDelete: false });
expect(await testSubjects.exists('cannotDeleteObjectsConfirmWarning')).to.eql(true);
});

it('should not delete the hidden objects when performing the operation', async () => {
await PageObjects.savedObjects.clickCheckboxByTitle('A Pie');
await PageObjects.savedObjects.clickCheckboxByTitle('hidden object 1');

await PageObjects.savedObjects.clickDelete({ confirmDelete: true });

const objectNames = (await PageObjects.savedObjects.getTableSummary()).map(
(obj) => obj.title
);
expect(objectNames.includes('hidden object 1')).to.eql(true);
expect(objectNames.includes('A Pie')).to.eql(false);
});
});

describe('importing hidden types', () => {
describe('importable/exportable hidden type', () => {
it('imports objects successfully', async () => {
await PageObjects.savedObjects.importFile(fixturePaths.hiddenImportable);
await PageObjects.savedObjects.checkImportSucceeded();
});

it('shows test-hidden-importable-exportable in table', async () => {
await PageObjects.savedObjects.searchForObject(
'type:(test-hidden-importable-exportable)'
);
const results = await PageObjects.savedObjects.getTableSummary();
expect(results.length).to.be(1);

const { title } = results[0];
expect(title).to.be(
'test-hidden-importable-exportable [id=ff3733a0-9fty-11e7-ahb3-3dcb94193fab]'
);
});
});

describe('non-importable/exportable hidden type', () => {
it('fails to import object', async () => {
await PageObjects.savedObjects.importFile(fixturePaths.hiddenNonImportable);
await PageObjects.savedObjects.checkImportSucceeded();

const errorsCount = await PageObjects.savedObjects.getImportErrorsCount();
expect(errorsCount).to.be(1);
});
});
});
});
}

0 comments on commit 697739c

Please sign in to comment.