From b4077ec199f22373ab616de64e22e47830b8328c Mon Sep 17 00:00:00 2001 From: John Dorlus Date: Thu, 27 Jun 2019 12:59:19 -0400 Subject: [PATCH 1/4] Added snapshot restore smoke test to ensure the app has loaded. --- .../apps/snapshot_restore/home_page.ts | 31 +++++++++++++++++++ .../functional/apps/snapshot_restore/index.ts | 15 +++++++++ x-pack/test/functional/config.js | 11 +++++-- x-pack/test/functional/page_objects/index.js | 1 + .../page_objects/snapshot_restore_page.ts | 23 ++++++++++++++ 5 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 x-pack/test/functional/apps/snapshot_restore/home_page.ts create mode 100644 x-pack/test/functional/apps/snapshot_restore/index.ts create mode 100644 x-pack/test/functional/page_objects/snapshot_restore_page.ts diff --git a/x-pack/test/functional/apps/snapshot_restore/home_page.ts b/x-pack/test/functional/apps/snapshot_restore/home_page.ts new file mode 100644 index 0000000000000..6f0a34544fc0b --- /dev/null +++ b/x-pack/test/functional/apps/snapshot_restore/home_page.ts @@ -0,0 +1,31 @@ +/* + * 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 expect from '@kbn/expect'; +import { KibanaFunctionalTestDefaultProviders } from '../../../types/providers'; + +// eslint-disable-next-line import/no-default-export +export default ({ getPageObjects, getService }: KibanaFunctionalTestDefaultProviders) => { + const pageObjects = getPageObjects(['common', 'snapshotRestore']); + const log = getService('log'); + + describe('Home page', function () { + this.tags('smoke'); + before(async () => { + await pageObjects.common.navigateToApp('snapshotRestore'); + }); + + it('Loads the app', async () => { + const appTitle = 'Snapshot Repositories'; + await log.debug(`Checking for app title to be {appTitle}`); + const appTitleText = await pageObjects.snapshotRestore.appTitleText(); + expect(appTitleText).to.be(appTitle); + + const repositoriesButton = await pageObjects.snapshotRestore.registerRepositoryButton(); + expect(await repositoriesButton.isDisplayed()).to.be(true); + }); + }); +}; diff --git a/x-pack/test/functional/apps/snapshot_restore/index.ts b/x-pack/test/functional/apps/snapshot_restore/index.ts new file mode 100644 index 0000000000000..acde2b9a247d8 --- /dev/null +++ b/x-pack/test/functional/apps/snapshot_restore/index.ts @@ -0,0 +1,15 @@ +/* + * 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 ({ loadTestFile }: KibanaFunctionalTestDefaultProviders) => { + describe('Snapshots app', function() { + this.tags('ciGroup1'); + loadTestFile(require.resolve('./home_page')); + }); +}; diff --git a/x-pack/test/functional/config.js b/x-pack/test/functional/config.js index 4d550919470d8..d5812387b2ae7 100644 --- a/x-pack/test/functional/config.js +++ b/x-pack/test/functional/config.js @@ -28,6 +28,7 @@ import { RollupPageProvider, UptimePageProvider, LicenseManagementPageProvider, + SnapshotRestorePageProvider } from './page_objects'; import { @@ -111,7 +112,8 @@ export default async function ({ readConfigFile }) { resolve(__dirname, './apps/dev_tools'), resolve(__dirname, './apps/apm'), resolve(__dirname, './apps/index_patterns'), - resolve(__dirname, './apps/license_management') + resolve(__dirname, './apps/license_management'), + resolve(__dirname, './apps/snapshot_restore') ], // define the name and providers for services that should be @@ -178,7 +180,8 @@ export default async function ({ readConfigFile }) { code: CodeHomePageProvider, uptime: UptimePageProvider, rollup: RollupPageProvider, - licenseManagement: LicenseManagementPageProvider + licenseManagement: LicenseManagementPageProvider, + snapshotRestore: SnapshotRestorePageProvider }, servers: kibanaFunctionalConfig.get('servers'), @@ -280,6 +283,10 @@ export default async function ({ readConfigFile }) { pathname: '/app/kibana', hash: '/management/elasticsearch/license_management', }, + snapshotRestore: { + pathname: '/app/kibana', + hash: '/management/elasticsearch/snapshot_restore', + }, apm: { pathname: '/app/apm', } diff --git a/x-pack/test/functional/page_objects/index.js b/x-pack/test/functional/page_objects/index.js index 4aead337d7519..a288ccf6b55aa 100644 --- a/x-pack/test/functional/page_objects/index.js +++ b/x-pack/test/functional/page_objects/index.js @@ -23,3 +23,4 @@ export { CodeHomePageProvider } from './code_page'; export { RollupPageProvider } from './rollup_page'; export { UptimePageProvider } from './uptime_page'; export { LicenseManagementPageProvider } from './license_management_page'; +export { SnapshotRestorePageProvider } from './snapshot_restore_page'; diff --git a/x-pack/test/functional/page_objects/snapshot_restore_page.ts b/x-pack/test/functional/page_objects/snapshot_restore_page.ts new file mode 100644 index 0000000000000..b311dbb650cb3 --- /dev/null +++ b/x-pack/test/functional/page_objects/snapshot_restore_page.ts @@ -0,0 +1,23 @@ +/* + * 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'; + +export const SnapshotRestorePageProvider = ({ + getService, +}: KibanaFunctionalTestDefaultProviders) => { + const testSubjects = getService('testSubjects'); + + return { + async appTitleText() { + return await testSubjects.getVisibleText('appTitle'); + }, + async registerRepositoryButton() { + return await testSubjects.find('registerRepositoryButton'); + } + }; +}; From b5eea77633c7598d8bc3c186ba9bebc709180f19 Mon Sep 17 00:00:00 2001 From: John Dorlus Date: Thu, 27 Jun 2019 13:16:25 -0400 Subject: [PATCH 2/4] Fixed linting issues. --- x-pack/test/functional/apps/snapshot_restore/home_page.ts | 2 +- x-pack/test/functional/page_objects/snapshot_restore_page.ts | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/x-pack/test/functional/apps/snapshot_restore/home_page.ts b/x-pack/test/functional/apps/snapshot_restore/home_page.ts index 6f0a34544fc0b..e8074452e8eea 100644 --- a/x-pack/test/functional/apps/snapshot_restore/home_page.ts +++ b/x-pack/test/functional/apps/snapshot_restore/home_page.ts @@ -12,7 +12,7 @@ export default ({ getPageObjects, getService }: KibanaFunctionalTestDefaultProvi const pageObjects = getPageObjects(['common', 'snapshotRestore']); const log = getService('log'); - describe('Home page', function () { + describe('Home page', function() { this.tags('smoke'); before(async () => { await pageObjects.common.navigateToApp('snapshotRestore'); diff --git a/x-pack/test/functional/page_objects/snapshot_restore_page.ts b/x-pack/test/functional/page_objects/snapshot_restore_page.ts index b311dbb650cb3..d5d004693d8e3 100644 --- a/x-pack/test/functional/page_objects/snapshot_restore_page.ts +++ b/x-pack/test/functional/page_objects/snapshot_restore_page.ts @@ -4,7 +4,6 @@ * you may not use this file except in compliance with the Elastic License. */ - import { KibanaFunctionalTestDefaultProviders } from '../../types/providers'; export const SnapshotRestorePageProvider = ({ @@ -18,6 +17,6 @@ export const SnapshotRestorePageProvider = ({ }, async registerRepositoryButton() { return await testSubjects.find('registerRepositoryButton'); - } + }, }; }; From aaf031434a54f970505eea08605e596883421b04 Mon Sep 17 00:00:00 2001 From: John Dorlus Date: Tue, 2 Jul 2019 17:13:52 -0400 Subject: [PATCH 3/4] Updated test to reflect changes to Snapshot and Restore's name. --- x-pack/test/functional/apps/snapshot_restore/home_page.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/test/functional/apps/snapshot_restore/home_page.ts b/x-pack/test/functional/apps/snapshot_restore/home_page.ts index e8074452e8eea..5847987e0405b 100644 --- a/x-pack/test/functional/apps/snapshot_restore/home_page.ts +++ b/x-pack/test/functional/apps/snapshot_restore/home_page.ts @@ -19,8 +19,8 @@ export default ({ getPageObjects, getService }: KibanaFunctionalTestDefaultProvi }); it('Loads the app', async () => { - const appTitle = 'Snapshot Repositories'; - await log.debug(`Checking for app title to be {appTitle}`); + const appTitle = 'Snapshot and Restore'; + await log.debug(`Checking for app title to be ${appTitle}`); const appTitleText = await pageObjects.snapshotRestore.appTitleText(); expect(appTitleText).to.be(appTitle); From 4671609a6ceb610059f7f71895bd6007292c6578 Mon Sep 17 00:00:00 2001 From: John Dorlus Date: Sat, 6 Jul 2019 02:12:33 -0400 Subject: [PATCH 4/4] Fixed merge update. --- x-pack/test/functional/config.js | 7 +++++++ x-pack/test/functional/page_objects/index.js | 1 + 2 files changed, 8 insertions(+) diff --git a/x-pack/test/functional/config.js b/x-pack/test/functional/config.js index 14dfc61a8e864..4fdfaa5cb5858 100644 --- a/x-pack/test/functional/config.js +++ b/x-pack/test/functional/config.js @@ -28,6 +28,7 @@ import { RollupPageProvider, UptimePageProvider, LicenseManagementPageProvider, + IndexLifecycleManagementPageProvider, SnapshotRestorePageProvider } from './page_objects'; @@ -113,6 +114,7 @@ export default async function ({ readConfigFile }) { resolve(__dirname, './apps/apm'), resolve(__dirname, './apps/index_patterns'), resolve(__dirname, './apps/license_management'), + resolve(__dirname, './apps/index_lifecycle_management'), resolve(__dirname, './apps/snapshot_restore') ], @@ -181,6 +183,7 @@ export default async function ({ readConfigFile }) { uptime: UptimePageProvider, rollup: RollupPageProvider, licenseManagement: LicenseManagementPageProvider, + indexLifecycleManagement: IndexLifecycleManagementPageProvider, snapshotRestore: SnapshotRestorePageProvider }, @@ -283,6 +286,10 @@ export default async function ({ readConfigFile }) { pathname: '/app/kibana', hash: '/management/elasticsearch/license_management', }, + indexLifecycleManagement: { + pathname: '/app/kibana', + hash: '/management/elasticsearch/index_lifecycle_management', + }, snapshotRestore: { pathname: '/app/kibana', hash: '/management/elasticsearch/snapshot_restore', diff --git a/x-pack/test/functional/page_objects/index.js b/x-pack/test/functional/page_objects/index.js index a288ccf6b55aa..cfa317b268501 100644 --- a/x-pack/test/functional/page_objects/index.js +++ b/x-pack/test/functional/page_objects/index.js @@ -23,4 +23,5 @@ export { CodeHomePageProvider } from './code_page'; export { RollupPageProvider } from './rollup_page'; export { UptimePageProvider } from './uptime_page'; export { LicenseManagementPageProvider } from './license_management_page'; +export { IndexLifecycleManagementPageProvider } from './index_lifecycle_management_page'; export { SnapshotRestorePageProvider } from './snapshot_restore_page';