Kibana home page tests (#15098)

Couple of tests to make sure Kibana home page isn't breaking.
This commit is contained in:
Bhavya RM 2017-11-29 16:24:00 -05:00 committed by GitHub
parent 1f4ae7f29e
commit 215d567f46
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 64 additions and 2 deletions

View file

@ -19,7 +19,11 @@ export function Synopsis({ description, iconUrl, title, url }) {
}
return (
<a href={url} className="kuiLink synopsis">
<a
href={url}
className="kuiLink synopsis"
data-test-subj={`homeSynopsisLink${title.toLowerCase()}`}
>
<KuiFlexGroup>
<KuiFlexItem grow={false}>{img}</KuiFlexItem>
<KuiFlexItem className="synopsisContent">

View file

@ -6,7 +6,7 @@
<!-- Logo -->
<div class="global-nav__logo">
<a href="{{ getHref('/app/kibana#/home') }}">
<a href="{{ getHref('/app/kibana#/home') }}" data-test-subj="kibanaLogo">
<li
ng-if="!logoBrand && !smallLogoBrand"
aria-label="{{ appTitle }} Logo"

View file

@ -0,0 +1,24 @@
import expect from 'expect.js';
export default function ({ getService, getPageObjects }) {
const remote = getService('remote');
const PageObjects = getPageObjects(['common', 'home']);
describe('Kibana takes you home', function describeIndexTests() {
it('clicking on kibana logo should take you to home page', async ()=> {
await PageObjects.common.navigateToApp('settings');
await PageObjects.home.clickKibanaIcon();
const url = await remote.getCurrentUrl();
expect(url.includes('/app/kibana#/home')).to.be(true);
});
it('clicking on console on homepage should take you to console app', async ()=> {
await PageObjects.home.clickSynopsis('console');
const url = await remote.getCurrentUrl();
expect(url.includes('/app/kibana#/dev_tools/console?_g=()')).to.be(true);
});
});
}

View file

@ -0,0 +1,11 @@
export default function ({ getService, loadTestFile }) {
const remote = getService('remote');
describe('homepage app', function () {
before(function () {
return remote.setWindowSize(1200, 800);
});
loadTestFile(require.resolve('./_home'));
});
}

View file

@ -5,6 +5,7 @@ import {
ContextPageProvider,
DiscoverPageProvider,
HeaderPageProvider,
HomePageProvider,
DashboardPageProvider,
VisualizePageProvider,
SettingsPageProvider,
@ -35,6 +36,7 @@ export default async function ({ readConfigFile }) {
require.resolve('./apps/context'),
require.resolve('./apps/dashboard'),
require.resolve('./apps/discover'),
require.resolve('./apps/home'),
require.resolve('./apps/management'),
require.resolve('./apps/status_page'),
require.resolve('./apps/timelion'),
@ -48,6 +50,7 @@ export default async function ({ readConfigFile }) {
context: ContextPageProvider,
discover: DiscoverPageProvider,
header: HeaderPageProvider,
home: HomePageProvider,
dashboard: DashboardPageProvider,
visualize: VisualizePageProvider,
settings: SettingsPageProvider,

View file

@ -0,0 +1,19 @@
export function HomePageProvider({ getService }) {
const testSubjects = getService('testSubjects');
//const PageObjects = getPageObjects(['common', 'header']);
class HomePage {
async clickKibanaIcon() {
await testSubjects.click('kibanaLogo');
}
async clickSynopsis(title) {
await testSubjects.click(`homeSynopsisLink${title}`);
}
}
return new HomePage();
}

View file

@ -4,6 +4,7 @@ export { ShieldPageProvider } from './shield_page';
export { ContextPageProvider } from './context_page';
export { DiscoverPageProvider } from './discover_page';
export { HeaderPageProvider } from './header_page';
export { HomePageProvider } from './home_page';
export { DashboardPageProvider } from './dashboard_page';
export { VisualizePageProvider } from './visualize_page';
export { SettingsPageProvider } from './settings_page';