mirror of
https://github.com/elastic/kibana.git
synced 2025-04-25 02:09:32 -04:00
116 lines
3.9 KiB
TypeScript
116 lines
3.9 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
|
|
* 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 spaceSelectorFunctionalTests({
|
|
getService,
|
|
getPageObjects,
|
|
}: FtrProviderContext) {
|
|
const esArchiver = getService('esArchiver');
|
|
const listingTable = getService('listingTable');
|
|
const PageObjects = getPageObjects([
|
|
'common',
|
|
'dashboard',
|
|
'header',
|
|
'home',
|
|
'security',
|
|
'spaceSelector',
|
|
]);
|
|
|
|
// FLAKY: https://github.com/elastic/kibana/issues/99581
|
|
describe.skip('Spaces', function () {
|
|
this.tags('includeFirefox');
|
|
describe('Space Selector', () => {
|
|
before(async () => {
|
|
await esArchiver.load('spaces/selector');
|
|
await PageObjects.security.forceLogout();
|
|
});
|
|
after(async () => await esArchiver.unload('spaces/selector'));
|
|
|
|
afterEach(async () => {
|
|
await PageObjects.security.forceLogout();
|
|
});
|
|
|
|
it('allows user to navigate to different spaces', async () => {
|
|
const spaceId = 'another-space';
|
|
|
|
await PageObjects.security.login(undefined, undefined, {
|
|
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 = '/tutorial_directory/sampleData';
|
|
|
|
const expectDashboardRenders = async (dashName: string) => {
|
|
await listingTable.searchForItemWithName(dashName);
|
|
await listingTable.clickItemLink('dashboard', 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(undefined, undefined, {
|
|
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.forceLogout();
|
|
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');
|
|
});
|
|
});
|
|
});
|
|
});
|
|
}
|