kibana/x-pack/test/functional/apps/spaces/spaces_selection.ts
Spencer 68f14413a7
[7.x] [jest] disallow invalid describe calls (#41378) (#41483)
* [jest] disallow invalid describe calls

* correct other describe calls

* remove unnecessary glob

* cast decribe names to strings

* remove new async describe function

# Conflicts:
#	x-pack/legacy/plugins/index_management/__jest__/client_integration/home.test.ts
#	x-pack/test/functional/apps/uptime/monitor.ts
2019-07-18 15:25:50 -07:00

110 lines
3.7 KiB
TypeScript

/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/
import { KibanaFunctionalTestDefaultProviders } from '../../../types/providers';
// eslint-disable-next-line import/no-default-export
export default function spaceSelectorFunctonalTests({
getService,
getPageObjects,
}: KibanaFunctionalTestDefaultProviders) {
const esArchiver = getService('esArchiver');
const PageObjects = getPageObjects([
'common',
'dashboard',
'header',
'home',
'security',
'spaceSelector',
]);
describe('Spaces', function() {
this.tags('smoke');
describe('Space Selector', () => {
before(async () => await esArchiver.load('spaces/selector'));
after(async () => await esArchiver.unload('spaces/selector'));
afterEach(async () => {
await PageObjects.security.logout();
});
it('allows user to navigate to different spaces', async () => {
const spaceId = 'another-space';
await PageObjects.security.login(null, null, {
expectSpaceSelector: true,
});
await PageObjects.spaceSelector.clickSpaceCard(spaceId);
await PageObjects.spaceSelector.expectHomePage(spaceId);
await PageObjects.spaceSelector.openSpacesNav();
// change spaces
await PageObjects.spaceSelector.clickSpaceAvatar('default');
await PageObjects.spaceSelector.expectHomePage('default');
});
});
describe('Spaces Data', () => {
const spaceId = 'another-space';
const sampleDataHash = '/home/tutorial_directory/sampleData';
const expectDashboardRenders = async (dashName: string) => {
await PageObjects.dashboard.searchForDashboardWithName(dashName);
await PageObjects.dashboard.selectDashboard(dashName);
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.dashboard.waitForRenderComplete(); // throws if all items are not rendered
};
before(async () => {
await esArchiver.load('spaces/selector');
await PageObjects.security.login(null, null, {
expectSpaceSelector: true,
});
await PageObjects.spaceSelector.clickSpaceCard('default');
await PageObjects.common.navigateToApp('home', {
hash: sampleDataHash,
});
await PageObjects.home.addSampleDataSet('logs');
await PageObjects.common.navigateToApp('home', {
hash: sampleDataHash,
basePath: `/s/${spaceId}`,
});
await PageObjects.home.addSampleDataSet('logs');
});
after(async () => {
// No need to remove the same sample data in both spaces, the index
// data will be removed in the first call. By feature limitation,
// the created saved objects in the second space will be broken but removed
// when we call esArchiver.unload('spaces').
await PageObjects.common.navigateToApp('home', {
hash: sampleDataHash,
});
await PageObjects.home.removeSampleDataSet('logs');
await PageObjects.security.logout();
await esArchiver.unload('spaces/selector');
});
describe('displays separate data for each space', () => {
it('in the default space', async () => {
await PageObjects.common.navigateToApp('dashboard');
await expectDashboardRenders('[Logs] Web Traffic');
});
it('in a custom space', async () => {
await PageObjects.common.navigateToApp('dashboard', {
basePath: `/s/${spaceId}`,
});
await expectDashboardRenders('[Logs] Web Traffic');
});
});
});
});
}