mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 09:19:04 -04:00
Functional tests for the Getting Started page (#11850)
* Adding some more functionality to the Getting Started page object * Using optOut method from Getting Started page object * Adding functional tests for Getting Started page This set of tests specifically tests the scenarios under which a user should or should not get redirected to the Getting Started page * Adding log.debug message * Conforming to HTML style guide * Using new GettingStarted page object methods + opting out * Adding test for nav being shown * Removing unnecessary line * Navigate to Discover expecting to be redirected to the Getting Started page * Trying beforeEach instead of before * Remove LS data index + load empty kibana index * Removing unnecessary line * Fixing order of operations
This commit is contained in:
parent
83758f499a
commit
ae16cb325e
5 changed files with 95 additions and 2 deletions
|
@ -1,4 +1,7 @@
|
|||
<div class="kuiViewContent gettingStartedContent" data-test-subj="gettingStartedContainer">
|
||||
<div
|
||||
class="kuiViewContent gettingStartedContent"
|
||||
data-test-subj="gettingStartedContainer"
|
||||
>
|
||||
|
||||
<div
|
||||
ng-if="!gettingStarted.hasOptedOut()"
|
||||
|
|
78
test/functional/apps/management/_getting_started.js
Normal file
78
test/functional/apps/management/_getting_started.js
Normal file
|
@ -0,0 +1,78 @@
|
|||
import expect from 'expect.js';
|
||||
|
||||
export default ({ getService, getPageObjects }) => {
|
||||
const kibanaServer = getService('kibanaServer');
|
||||
const esArchiver = getService('esArchiver');
|
||||
const remote = getService('remote');
|
||||
const log = getService('log');
|
||||
|
||||
const PageObjects = getPageObjects(['common', 'gettingStarted']);
|
||||
|
||||
describe('Getting Started page', () => {
|
||||
describe('when no index patterns exist', () => {
|
||||
beforeEach(async () => {
|
||||
// delete .kibana index and then wait for Kibana to re-create it
|
||||
await esArchiver.unload('logstash_functional');
|
||||
await esArchiver.load('empty_kibana');
|
||||
});
|
||||
|
||||
describe('when user has not opted out of Getting Started page', () => {
|
||||
beforeEach(async () => {
|
||||
// First, we navigate to *somewhere* in Kibana so the browser loads up Kibana. This allows us...
|
||||
await PageObjects.common.navigateToUrl('discover', '');
|
||||
|
||||
// ... to remove the Getting Started page opt-out flag from local storage for the Kibana domain
|
||||
await remote.deleteLocalStorageItem('kibana.isGettingStartedOptedOut');
|
||||
});
|
||||
|
||||
it('redirects to the Getting Started page', async () => {
|
||||
await PageObjects.common.navigateToUrl('discover', '');
|
||||
await PageObjects.common.waitUntilUrlIncludes('getting_started');
|
||||
const isLoaded = await PageObjects.gettingStarted.doesContainerExist();
|
||||
expect(isLoaded).to.be(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('when user has opted out of Getting Started page', () => {
|
||||
beforeEach(async () => {
|
||||
await PageObjects.gettingStarted.optOut();
|
||||
});
|
||||
|
||||
it('does not redirect to the Getting Started page', async () => {
|
||||
await PageObjects.common.navigateToUrl('discover', '');
|
||||
const isLoaded = await PageObjects.gettingStarted.doesContainerExist();
|
||||
expect(isLoaded).to.be(false);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('when index patterns exist', () => {
|
||||
beforeEach(async () => {
|
||||
log.debug('load kibana index with default index pattern');
|
||||
await esArchiver.load('discover');
|
||||
await kibanaServer.uiSettings.replace({
|
||||
'dateFormat:tz':'UTC',
|
||||
'defaultIndex':'logstash-*'
|
||||
});
|
||||
});
|
||||
|
||||
it('does not redirect to the Getting Started page', async () => {
|
||||
await PageObjects.common.navigateToUrl('discover', '');
|
||||
const isLoaded = await PageObjects.gettingStarted.doesContainerExist();
|
||||
expect(isLoaded).to.be(false);
|
||||
});
|
||||
|
||||
describe('when a user directly navigates to the Getting Started page', () => {
|
||||
beforeEach(async () => {
|
||||
await PageObjects.gettingStarted.navigateTo();
|
||||
});
|
||||
|
||||
it('the kibana chrome (which contains the global nav) is visible', async () => {
|
||||
const isChromeVisible = await PageObjects.common.isChromeVisible();
|
||||
expect(isChromeVisible).to.be(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
|
@ -24,6 +24,7 @@ export default function ({ getService, loadTestFile }) {
|
|||
loadTestFile(require.resolve('./_scripted_fields'));
|
||||
loadTestFile(require.resolve('./_index_pattern_filter'));
|
||||
loadTestFile(require.resolve('./_scripted_fields_filter'));
|
||||
loadTestFile(require.resolve('./_getting_started'));
|
||||
});
|
||||
|
||||
}
|
||||
|
|
|
@ -266,6 +266,10 @@ export function CommonPageProvider({ getService, getPageObjects, getPageObject }
|
|||
log.debug(`exists? ${exists}`);
|
||||
return exists;
|
||||
}
|
||||
|
||||
async isChromeVisible() {
|
||||
return await testSubjects.exists('kibanaChrome');
|
||||
}
|
||||
}
|
||||
|
||||
return new CommonPage();
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
export function GettingStartedPageProvider({ getService }) {
|
||||
export function GettingStartedPageProvider({ getService, getPageObjects }) {
|
||||
|
||||
const log = getService('log');
|
||||
const retry = getService('retry');
|
||||
const testSubjects = getService('testSubjects');
|
||||
|
||||
const PageObjects = getPageObjects(['common']);
|
||||
|
||||
class GettingStartedPage {
|
||||
async doesContainerExist() {
|
||||
return await testSubjects.exists('gettingStartedContainer');
|
||||
|
@ -18,6 +20,11 @@ export function GettingStartedPageProvider({ getService }) {
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
async navigateTo() {
|
||||
log.debug('Navigating directly to Getting Started page');
|
||||
await PageObjects.common.navigateToUrl('settings', 'kibana/getting_started');
|
||||
}
|
||||
}
|
||||
|
||||
return new GettingStartedPage();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue