= ({
return (
{
if (drawerIds.includes(id)) {
diff --git a/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/actions_popover/actions_popover.tsx b/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/actions_popover/actions_popover.tsx
index e86e6b309214fe..2070a374e75d0a 100644
--- a/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/actions_popover/actions_popover.tsx
+++ b/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/actions_popover/actions_popover.tsx
@@ -41,6 +41,7 @@ export const ActionsPopoverComponent = ({
values: { monitorUrl },
}
)}
+ data-test-subj={`xpack.uptime.monitorList.actionsPopover.${summary.monitor_id}`}
onClick={() => togglePopoverIsVisible({ id: popoverId, open: true })}
iconType="arrowDown"
iconSide="right"
diff --git a/x-pack/plugins/uptime/public/components/settings/certificate_form.tsx b/x-pack/plugins/uptime/public/components/settings/certificate_form.tsx
index 06ce6b35997826..5bfd26f7c6401b 100644
--- a/x-pack/plugins/uptime/public/components/settings/certificate_form.tsx
+++ b/x-pack/plugins/uptime/public/components/settings/certificate_form.tsx
@@ -20,6 +20,7 @@ import {
import { DYNAMIC_SETTINGS_DEFAULTS } from '../../../common/constants';
import { DynamicSettings } from '../../../common/runtime_types';
import { SettingsFormProps } from '../../pages/settings';
+import { certificateFormTranslations } from './translations';
export type OnFieldChangeType = (changedValues: Partial) => void;
@@ -80,6 +81,7 @@ export const CertificateExpirationForm: React.FC = ({
= ({
{
+ before(async () => {
+ await esArchiver.load('uptime/blank');
+ await makeChecks(es, A11Y_TEST_MONITOR_ID, 150, 1, 1000, {
+ tls: {
+ certificate_not_valid_after: moment()
+ .add(30, 'days')
+ .toISOString(),
+ certificate_not_valid_before: moment()
+ .subtract(90, 'days')
+ .toISOString(),
+ server: {
+ x509: {
+ subject: {
+ common_name: 'a11y_common_name',
+ },
+ issuer: {
+ common_name: 'a11y_issuer_name',
+ },
+ },
+ },
+ },
+ });
+ });
+
+ beforeEach(async () => {
+ await uptime.goToRoot();
+ });
+
+ after(async () => {
+ await esArchiver.unload('uptime/blank');
+ });
+
+ it('overview page', async () => {
+ await a11y.testAppSnapshot();
+ });
+
+ it('overview page with expanded monitor detail', async () => {
+ await uptimeService.overview.expandMonitorDetail(A11Y_TEST_MONITOR_ID);
+ await uptimeService.overview.openIntegrationsPopoverForMonitor(A11Y_TEST_MONITOR_ID);
+ await a11y.testAppSnapshot();
+ });
+
+ it('overview alert popover controls', async () => {
+ await uptimeService.overview.openAlertsPopover();
+ await a11y.testAppSnapshot();
+ await uptimeService.overview.navigateToNestedPopover();
+ await a11y.testAppSnapshot();
+ });
+
+ it('detail page', async () => {
+ await uptimeService.navigation.goToMonitor(A11Y_TEST_MONITOR_ID);
+ await uptimeService.monitor.locationMapIsRendered();
+ await a11y.testAppSnapshot();
+ });
+
+ it('settings page', async () => {
+ await uptimeService.navigation.goToSettings();
+ await a11y.testAppSnapshot();
+ });
+
+ it('certificates page', async () => {
+ await uptimeService.navigation.goToCertificates();
+ await a11y.testAppSnapshot();
+ });
+ });
+}
diff --git a/x-pack/test/accessibility/config.ts b/x-pack/test/accessibility/config.ts
index ddeb52dce3b59f..29c1eb31c00d8a 100644
--- a/x-pack/test/accessibility/config.ts
+++ b/x-pack/test/accessibility/config.ts
@@ -19,6 +19,7 @@ export default async function({ readConfigFile }: FtrConfigProviderContext) {
require.resolve('./apps/home'),
require.resolve('./apps/grok_debugger'),
require.resolve('./apps/search_profiler'),
+ require.resolve('./apps/uptime'),
],
pageObjects,
services,
diff --git a/x-pack/test/case_api_integration/basic/tests/configure/get_configure.ts b/x-pack/test/case_api_integration/basic/tests/configure/get_configure.ts
index a9fc2706a6ba20..930cf42b9efc5c 100644
--- a/x-pack/test/case_api_integration/basic/tests/configure/get_configure.ts
+++ b/x-pack/test/case_api_integration/basic/tests/configure/get_configure.ts
@@ -18,7 +18,7 @@ import {
// eslint-disable-next-line import/no-default-export
export default ({ getService }: FtrProviderContext): void => {
const supertest = getService('supertest');
- const es = getService('legacyEs');
+ const es = getService('es');
describe('get_configure', () => {
afterEach(async () => {
diff --git a/x-pack/test/case_api_integration/basic/tests/configure/patch_configure.ts b/x-pack/test/case_api_integration/basic/tests/configure/patch_configure.ts
index d66baa2a2eee2b..5f7d7c4c5c346b 100644
--- a/x-pack/test/case_api_integration/basic/tests/configure/patch_configure.ts
+++ b/x-pack/test/case_api_integration/basic/tests/configure/patch_configure.ts
@@ -18,7 +18,7 @@ import {
// eslint-disable-next-line import/no-default-export
export default ({ getService }: FtrProviderContext): void => {
const supertest = getService('supertest');
- const es = getService('legacyEs');
+ const es = getService('es');
describe('post_configure', () => {
afterEach(async () => {
diff --git a/x-pack/test/case_api_integration/basic/tests/configure/post_configure.ts b/x-pack/test/case_api_integration/basic/tests/configure/post_configure.ts
index c2284492e5b771..86214a2bd3187f 100644
--- a/x-pack/test/case_api_integration/basic/tests/configure/post_configure.ts
+++ b/x-pack/test/case_api_integration/basic/tests/configure/post_configure.ts
@@ -18,7 +18,7 @@ import {
// eslint-disable-next-line import/no-default-export
export default ({ getService }: FtrProviderContext): void => {
const supertest = getService('supertest');
- const es = getService('legacyEs');
+ const es = getService('es');
describe('post_configure', () => {
afterEach(async () => {
diff --git a/x-pack/test/case_api_integration/common/lib/utils.ts b/x-pack/test/case_api_integration/common/lib/utils.ts
index 6d0db69309b908..df768ff09b3689 100644
--- a/x-pack/test/case_api_integration/common/lib/utils.ts
+++ b/x-pack/test/case_api_integration/common/lib/utils.ts
@@ -4,6 +4,7 @@
* you may not use this file except in compliance with the Elastic License.
*/
+import { Client } from '@elastic/elasticsearch';
import { CasesConfigureRequest, CasesConfigureResponse } from '../../../../plugins/case/common/api';
export const getConfiguration = (connector_id: string = 'connector-1'): CasesConfigureRequest => {
@@ -29,12 +30,12 @@ export const removeServerGeneratedPropertiesFromConfigure = (
return rest;
};
-export const deleteConfiguration = async (es: any): Promise => {
+export const deleteConfiguration = async (es: Client): Promise => {
await es.deleteByQuery({
index: '.kibana',
q: 'type:cases-configure',
- waitForCompletion: true,
- refresh: 'wait_for',
+ wait_for_completion: true,
+ refresh: true,
body: {},
});
};
diff --git a/x-pack/test/functional/services/uptime/overview.ts b/x-pack/test/functional/services/uptime/overview.ts
new file mode 100644
index 00000000000000..e96aef859d7465
--- /dev/null
+++ b/x-pack/test/functional/services/uptime/overview.ts
@@ -0,0 +1,34 @@
+/*
+ * 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 { FtrProviderContext } from '../../ftr_provider_context';
+
+export function UptimeOverviewProvider({ getService }: FtrProviderContext) {
+ const testSubjects = getService('testSubjects');
+
+ return {
+ async expandMonitorDetail(id: string): Promise {
+ return testSubjects.click(`xpack.uptime.monitorList.${id}.expandMonitorDetail`);
+ },
+ async openIntegrationsPopoverForMonitor(id: string): Promise {
+ return testSubjects.click(`xpack.uptime.monitorList.actionsPopover.${id}`);
+ },
+ async openAlertsPopover(): Promise {
+ return testSubjects.click('xpack.uptime.alertsPopover.toggleButton');
+ },
+ /**
+ * If the popover is already open, click the nested button.
+ * Otherwise, open the popover, then click the nested button.
+ */
+ async navigateToNestedPopover(): Promise {
+ if (testSubjects.exists('xpack.uptime.openAlertContextPanel')) {
+ return testSubjects.click('xpack.uptime.openAlertContextPanel');
+ }
+ await testSubjects.click('xpack.uptime.alertsPopover.toggleButton');
+ return testSubjects.click('xpack.uptime.openAlertContextPanel');
+ },
+ };
+}
diff --git a/x-pack/test/functional/services/uptime/uptime.ts b/x-pack/test/functional/services/uptime/uptime.ts
index 8d36ba4bf6cfd6..dcfb5819000677 100644
--- a/x-pack/test/functional/services/uptime/uptime.ts
+++ b/x-pack/test/functional/services/uptime/uptime.ts
@@ -13,6 +13,7 @@ import { UptimeNavigationProvider } from './navigation';
import { UptimeAlertsProvider } from './alerts';
import { UptimeMLAnomalyProvider } from './ml_anomaly';
import { UptimeCertProvider } from './certificates';
+import { UptimeOverviewProvider } from './overview';
export function UptimeProvider(context: FtrProviderContext) {
const common = UptimeCommonProvider(context);
@@ -22,6 +23,7 @@ export function UptimeProvider(context: FtrProviderContext) {
const alerts = UptimeAlertsProvider(context);
const ml = UptimeMLAnomalyProvider(context);
const cert = UptimeCertProvider(context);
+ const overview = UptimeOverviewProvider(context);
return {
common,
@@ -31,5 +33,6 @@ export function UptimeProvider(context: FtrProviderContext) {
alerts,
ml,
cert,
+ overview,
};
}