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..5847987e0405b --- /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 and Restore'; + 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 21abab9238f69..be7eafc410a4c 100644 --- a/x-pack/test/functional/config.js +++ b/x-pack/test/functional/config.js @@ -28,6 +28,8 @@ import { RollupPageProvider, UptimePageProvider, LicenseManagementPageProvider, + IndexLifecycleManagementPageProvider, + SnapshotRestorePageProvider } from './page_objects'; import { @@ -111,7 +113,9 @@ 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/index_lifecycle_management'), + resolve(__dirname, './apps/snapshot_restore') ], // define the name and providers for services that should be @@ -178,7 +182,9 @@ export default async function ({ readConfigFile }) { code: CodeHomePageProvider, uptime: UptimePageProvider, rollup: RollupPageProvider, - licenseManagement: LicenseManagementPageProvider + licenseManagement: LicenseManagementPageProvider, + indexLifecycleManagement: IndexLifecycleManagementPageProvider, + snapshotRestore: SnapshotRestorePageProvider }, servers: kibanaFunctionalConfig.get('servers'), @@ -280,6 +286,14 @@ 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', + }, 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..cfa317b268501 100644 --- a/x-pack/test/functional/page_objects/index.js +++ b/x-pack/test/functional/page_objects/index.js @@ -23,3 +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'; 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..d5d004693d8e3 --- /dev/null +++ b/x-pack/test/functional/page_objects/snapshot_restore_page.ts @@ -0,0 +1,22 @@ +/* + * 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'); + }, + }; +};