[8.10] [DOCS] Automate Jira connector screenshots (#165917) (#166124)

# Backport

This will backport the following commits from `main` to `8.10`:
- [[DOCS] Automate Jira connector screenshots
(#165917)](https://github.com/elastic/kibana/pull/165917)

<!--- Backport version: 8.9.8 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Lisa
Cawley","email":"lcawley@elastic.co"},"sourceCommit":{"committedDate":"2023-09-08T20:01:53Z","message":"[DOCS]
Automate Jira connector screenshots
(#165917)","sha":"87c60a381936314db9474921b3d1da033f276ae7","branchLabelMapping":{"^v8.11.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:ResponseOps","docs","Feature:Actions/ConnectorTypes","backport:prev-minor","v8.11.0"],"number":165917,"url":"https://github.com/elastic/kibana/pull/165917","mergeCommit":{"message":"[DOCS]
Automate Jira connector screenshots
(#165917)","sha":"87c60a381936314db9474921b3d1da033f276ae7"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v8.11.0","labelRegex":"^v8.11.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/165917","number":165917,"mergeCommit":{"message":"[DOCS]
Automate Jira connector screenshots
(#165917)","sha":"87c60a381936314db9474921b3d1da033f276ae7"}}]}]
BACKPORT-->
This commit is contained in:
Lisa Cawley 2023-09-11 08:27:15 -07:00 committed by GitHub
parent a4fe822011
commit cdc8242989
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 390 additions and 205 deletions

View file

@ -25,6 +25,7 @@ or as needed when you're creating a rule. For example:
[role="screenshot"]
image::management/connectors/images/jira-connector.png[Jira connector]
// NOTE: This is an autogenerated screenshot. Do not edit it directly.
[float]
[[jira-connector-configuration]]
@ -80,6 +81,7 @@ as you're creating or editing the connector in {kib}. For example:
[role="screenshot"]
image::management/connectors/images/jira-params-test.png[Jira params test]
// NOTE: This is an autogenerated screenshot. Do not edit it directly.
Jira actions have the following configuration properties.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 157 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Before After
Before After

View file

@ -1,203 +0,0 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { FtrProviderContext } from '../../../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const commonScreenshots = getService('commonScreenshots');
const screenshotDirectories = ['response_ops_docs', 'stack_connectors'];
const pageObjects = getPageObjects(['common', 'header']);
const actions = getService('actions');
const browser = getService('browser');
const comboBox = getService('comboBox');
const find = getService('find');
const testSubjects = getService('testSubjects');
const testIndex = `test-index`;
const indexDocument =
`{\n` +
`"rule_id": "{{rule.id}}",\n` +
`"rule_name": "{{rule.name}}",\n` +
`"alert_id": "{{alert.id}}",\n` +
`"context_message": "{{context.message}}"\n`;
const webhookJson =
`{\n` +
`"short_description": "{{context.rule.name}}",\n` +
`"description": "{{context.rule.description}}"`;
const emailConnectorName = 'my-email-connector';
describe('connector types', function () {
let emailConnectorId: string;
before(async () => {
({ id: emailConnectorId } = await actions.api.createConnector({
name: emailConnectorName,
config: {
service: 'other',
from: 'bob@example.com',
host: 'some.non.existent.com',
port: 25,
},
secrets: {
user: 'bob',
password: 'supersecret',
},
connectorTypeId: '.email',
}));
});
beforeEach(async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
});
after(async () => {
await actions.api.deleteConnector(emailConnectorId);
});
it('server log connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('server-log');
await testSubjects.setValue('nameInput', 'Server log test connector');
await commonScreenshots.takeScreenshot('serverlog-connector', screenshotDirectories);
const saveTestButton = await testSubjects.find('create-connector-flyout-save-test-btn');
await saveTestButton.click();
await commonScreenshots.takeScreenshot('serverlog-params-test', screenshotDirectories);
const flyOutCancelButton = await testSubjects.find('euiFlyoutCloseButton');
await flyOutCancelButton.click();
});
it('index connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('index');
await testSubjects.setValue('nameInput', 'Index test connector');
await comboBox.set('connectorIndexesComboBox', testIndex);
const timeFieldToggle = await testSubjects.find('hasTimeFieldCheckbox');
await timeFieldToggle.click();
await commonScreenshots.takeScreenshot('index-connector', screenshotDirectories);
const saveTestButton = await testSubjects.find('create-connector-flyout-save-test-btn');
await saveTestButton.click();
await testSubjects.setValue('actionJsonEditor', indexDocument);
await commonScreenshots.takeScreenshot('index-params-test', screenshotDirectories);
const flyOutCancelButton = await testSubjects.find('euiFlyoutCloseButton');
await flyOutCancelButton.click();
});
it('slack api connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('slack');
await testSubjects.click('.slack_apiButton');
await testSubjects.setValue('nameInput', 'Slack api test connector');
await testSubjects.setValue('secrets.token-input', 'xoxb-XXXX-XXXX-XXXX');
await commonScreenshots.takeScreenshot('slack-api-connector', screenshotDirectories);
await testSubjects.click('create-connector-flyout-save-test-btn');
await testSubjects.click('toastCloseButton');
await pageObjects.common.closeToast();
await commonScreenshots.takeScreenshot('slack-api-params', screenshotDirectories);
await testSubjects.click('euiFlyoutCloseButton');
});
it('slack webhook connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('slack');
await testSubjects.setValue('nameInput', 'Slack webhook test connector');
await testSubjects.setValue(
'slackWebhookUrlInput',
'https://hooks.slack.com/services/abcd/ljklmnopqrstuvwxz'
);
await commonScreenshots.takeScreenshot('slack-webhook-connector', screenshotDirectories);
await testSubjects.click('create-connector-flyout-save-test-btn');
await testSubjects.click('toastCloseButton');
await commonScreenshots.takeScreenshot('slack-webhook-params', screenshotDirectories);
await testSubjects.click('euiFlyoutCloseButton');
});
it('email connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('email');
await testSubjects.setValue('nameInput', 'Gmail connector');
await testSubjects.setValue('emailFromInput', 'test@gmail.com');
await testSubjects.setValue('emailServiceSelectInput', 'gmail');
await commonScreenshots.takeScreenshot('email-connector', screenshotDirectories);
const flyOutCancelButton = await testSubjects.find('euiFlyoutCloseButton');
await flyOutCancelButton.click();
});
it('test email connector screenshots', async () => {
const searchBox = await find.byCssSelector('[data-test-subj="actionsList"] .euiFieldSearch');
await searchBox.click();
await searchBox.clearValue();
await searchBox.type('my actionTypeId:(.email)');
await searchBox.pressKeys(browser.keys.ENTER);
const connectorList = await testSubjects.find('actionsTable');
const emailConnector = await connectorList.findByCssSelector(
`[title="${emailConnectorName}"]`
);
await emailConnector.click();
const testButton = await testSubjects.find('testConnectorTab');
await testButton.click();
await testSubjects.setValue('comboBoxSearchInput', 'elastic@gmail.com');
await testSubjects.setValue('subjectInput', 'Test subject');
await testSubjects.setValue('messageTextArea', 'Enter message text');
/* timing issue sometimes happens with the combobox so we just try to set the subjectInput again */
await testSubjects.setValue('subjectInput', 'Test subject');
await commonScreenshots.takeScreenshot(
'email-params-test',
screenshotDirectories,
1400,
1024
);
});
it('webhook connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('webhook');
await testSubjects.setValue('nameInput', 'Webhook test connector');
await testSubjects.setValue('webhookUrlText', 'https://example.com');
await testSubjects.setValue('webhookUserInput', 'testuser');
await testSubjects.setValue('webhookPasswordInput', 'password');
await commonScreenshots.takeScreenshot('webhook-connector', screenshotDirectories);
const saveTestButton = await testSubjects.find('create-connector-flyout-save-test-btn');
await saveTestButton.click();
await testSubjects.setValue('actionJsonEditor', webhookJson);
await commonScreenshots.takeScreenshot('webhook-params-test', screenshotDirectories);
await testSubjects.click('euiFlyoutCloseButton');
});
it('pagerduty connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('pagerduty');
await testSubjects.setValue('nameInput', 'PagerDuty test connector');
await testSubjects.setValue('pagerdutyApiUrlInput', 'https://dev-test.pagerduty.com/');
await testSubjects.setValue('pagerdutyRoutingKeyInput', 'testkey');
await commonScreenshots.takeScreenshot('pagerduty-connector', screenshotDirectories);
await testSubjects.click('create-connector-flyout-save-test-btn');
await testSubjects.click('toastCloseButton');
await testSubjects.setValue('eventActionSelect', 'trigger');
await commonScreenshots.takeScreenshot('pagerduty-params-test', screenshotDirectories);
await testSubjects.click('euiFlyoutCloseButton');
});
it('opsgenie connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('opsgenie');
await testSubjects.setValue('nameInput', 'Opsgenie test connector');
await testSubjects.setValue('secrets.apiKey-input', 'testkey');
await commonScreenshots.takeScreenshot('opsgenie-connector', screenshotDirectories);
await testSubjects.click('create-connector-flyout-save-test-btn');
await testSubjects.click('toastCloseButton');
await commonScreenshots.takeScreenshot('opsgenie-params-test', screenshotDirectories);
await testSubjects.click('euiFlyoutCloseButton');
});
});
}

View file

@ -0,0 +1,86 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { FtrProviderContext } from '../../../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const commonScreenshots = getService('commonScreenshots');
const screenshotDirectories = ['response_ops_docs', 'stack_connectors'];
const pageObjects = getPageObjects(['common', 'header']);
const actions = getService('actions');
const browser = getService('browser');
const find = getService('find');
const testSubjects = getService('testSubjects');
const emailConnectorName = 'my-email-connector';
describe('email connector', function () {
let emailConnectorId: string;
before(async () => {
({ id: emailConnectorId } = await actions.api.createConnector({
name: emailConnectorName,
config: {
service: 'other',
from: 'bob@example.com',
host: 'some.non.existent.com',
port: 25,
},
secrets: {
user: 'bob',
password: 'supersecret',
},
connectorTypeId: '.email',
}));
});
beforeEach(async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
});
after(async () => {
await actions.api.deleteConnector(emailConnectorId);
});
it('email connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('email');
await testSubjects.setValue('nameInput', 'Gmail connector');
await testSubjects.setValue('emailFromInput', 'test@gmail.com');
await testSubjects.setValue('emailServiceSelectInput', 'gmail');
await commonScreenshots.takeScreenshot('email-connector', screenshotDirectories);
const flyOutCancelButton = await testSubjects.find('euiFlyoutCloseButton');
await flyOutCancelButton.click();
});
it('test email connector screenshots', async () => {
const searchBox = await find.byCssSelector('[data-test-subj="actionsList"] .euiFieldSearch');
await searchBox.click();
await searchBox.clearValue();
await searchBox.type('my actionTypeId:(.email)');
await searchBox.pressKeys(browser.keys.ENTER);
const connectorList = await testSubjects.find('actionsTable');
const emailConnector = await connectorList.findByCssSelector(
`[title="${emailConnectorName}"]`
);
await emailConnector.click();
const testButton = await testSubjects.find('testConnectorTab');
await testButton.click();
await testSubjects.setValue('comboBoxSearchInput', 'elastic@gmail.com');
await testSubjects.setValue('subjectInput', 'Test subject');
await testSubjects.setValue('messageTextArea', 'Enter message text');
/* timing issue sometimes happens with the combobox so we just try to set the subjectInput again */
await testSubjects.setValue('subjectInput', 'Test subject');
await commonScreenshots.takeScreenshot(
'email-params-test',
screenshotDirectories,
1400,
1024
);
});
});
}

View file

@ -21,7 +21,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
`"content": "You are a cyber security analyst using Elastic Security. I would like you to evaluate the event below and format your output neatly in markdown syntax. Add your description, an accuracy rating, and a threat rating."\n` +
`}]`;
describe('connector types', function () {
describe('generative ai connector', function () {
beforeEach(async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();

View file

@ -54,8 +54,15 @@ export default function ({ loadTestFile, getService }: FtrProviderContext) {
});
loadTestFile(require.resolve('./connectors'));
loadTestFile(require.resolve('./connector_types'));
loadTestFile(require.resolve('./email_connector'));
loadTestFile(require.resolve('./generative_ai_connector'));
loadTestFile(require.resolve('./index_connector'));
loadTestFile(require.resolve('./jira_connector'));
loadTestFile(require.resolve('./opsgenie_connector'));
loadTestFile(require.resolve('./pagerduty_connector'));
loadTestFile(require.resolve('./server_log_connector'));
loadTestFile(require.resolve('./slack_connector'));
loadTestFile(require.resolve('./webhook_connector'));
loadTestFile(require.resolve('./xmatters_connector'));
});
}

View file

@ -0,0 +1,48 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { FtrProviderContext } from '../../../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const commonScreenshots = getService('commonScreenshots');
const screenshotDirectories = ['response_ops_docs', 'stack_connectors'];
const pageObjects = getPageObjects(['common', 'header']);
const actions = getService('actions');
const comboBox = getService('comboBox');
const testSubjects = getService('testSubjects');
const testIndex = `test-index`;
const indexDocument =
`{\n` +
`"rule_id": "{{rule.id}}",\n` +
`"rule_name": "{{rule.name}}",\n` +
`"alert_id": "{{alert.id}}",\n` +
`"context_message": "{{context.message}}"\n`;
describe('index connector', function () {
beforeEach(async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
});
it('index connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('index');
await testSubjects.setValue('nameInput', 'Index test connector');
await comboBox.set('connectorIndexesComboBox', testIndex);
const timeFieldToggle = await testSubjects.find('hasTimeFieldCheckbox');
await timeFieldToggle.click();
await commonScreenshots.takeScreenshot('index-connector', screenshotDirectories);
const saveTestButton = await testSubjects.find('create-connector-flyout-save-test-btn');
await saveTestButton.click();
await testSubjects.setValue('actionJsonEditor', indexDocument);
await commonScreenshots.takeScreenshot('index-params-test', screenshotDirectories);
const flyOutCancelButton = await testSubjects.find('euiFlyoutCloseButton');
await flyOutCancelButton.click();
});
});
}

View file

@ -0,0 +1,39 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { FtrProviderContext } from '../../../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const commonScreenshots = getService('commonScreenshots');
const screenshotDirectories = ['response_ops_docs', 'stack_connectors'];
const pageObjects = getPageObjects(['common', 'header']);
const actions = getService('actions');
const testSubjects = getService('testSubjects');
describe('jira connector', function () {
beforeEach(async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
});
it('index connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('jira');
await testSubjects.setValue('nameInput', 'Jira test connector');
await testSubjects.setValue('config.apiUrl-input', 'https://elastic.atlassian.net');
await testSubjects.setValue('config.projectKey-input', 'ES');
await testSubjects.setValue('secrets.email-input', 'testuser@example.com');
await testSubjects.setValue('secrets.apiToken-input', 'test');
await commonScreenshots.takeScreenshot('jira-connector', screenshotDirectories);
await testSubjects.click('create-connector-flyout-save-test-btn');
await testSubjects.click('toastCloseButton');
await commonScreenshots.takeScreenshot('jira-params-test', screenshotDirectories);
await testSubjects.click('euiFlyoutCloseButton');
});
});
}

View file

@ -0,0 +1,36 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { FtrProviderContext } from '../../../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const commonScreenshots = getService('commonScreenshots');
const screenshotDirectories = ['response_ops_docs', 'stack_connectors'];
const pageObjects = getPageObjects(['common', 'header']);
const actions = getService('actions');
const testSubjects = getService('testSubjects');
describe('opsgenie connector', function () {
beforeEach(async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
});
it('opsgenie connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('opsgenie');
await testSubjects.setValue('nameInput', 'Opsgenie test connector');
await testSubjects.setValue('secrets.apiKey-input', 'testkey');
await commonScreenshots.takeScreenshot('opsgenie-connector', screenshotDirectories);
await testSubjects.click('create-connector-flyout-save-test-btn');
await testSubjects.click('toastCloseButton');
await commonScreenshots.takeScreenshot('opsgenie-params-test', screenshotDirectories);
await testSubjects.click('euiFlyoutCloseButton');
});
});
}

View file

@ -0,0 +1,37 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { FtrProviderContext } from '../../../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const commonScreenshots = getService('commonScreenshots');
const screenshotDirectories = ['response_ops_docs', 'stack_connectors'];
const pageObjects = getPageObjects(['common', 'header']);
const actions = getService('actions');
const testSubjects = getService('testSubjects');
describe('pagerduty connector', function () {
beforeEach(async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
});
it('pagerduty connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('pagerduty');
await testSubjects.setValue('nameInput', 'PagerDuty test connector');
await testSubjects.setValue('pagerdutyApiUrlInput', 'https://dev-test.pagerduty.com/');
await testSubjects.setValue('pagerdutyRoutingKeyInput', 'testkey');
await commonScreenshots.takeScreenshot('pagerduty-connector', screenshotDirectories);
await testSubjects.click('create-connector-flyout-save-test-btn');
await testSubjects.click('toastCloseButton');
await testSubjects.setValue('eventActionSelect', 'trigger');
await commonScreenshots.takeScreenshot('pagerduty-params-test', screenshotDirectories);
await testSubjects.click('euiFlyoutCloseButton');
});
});
}

View file

@ -0,0 +1,36 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { FtrProviderContext } from '../../../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const commonScreenshots = getService('commonScreenshots');
const screenshotDirectories = ['response_ops_docs', 'stack_connectors'];
const pageObjects = getPageObjects(['common', 'header']);
const actions = getService('actions');
const testSubjects = getService('testSubjects');
describe('server log connector', function () {
beforeEach(async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
});
it('server log connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('server-log');
await testSubjects.setValue('nameInput', 'Server log test connector');
await commonScreenshots.takeScreenshot('serverlog-connector', screenshotDirectories);
const saveTestButton = await testSubjects.find('create-connector-flyout-save-test-btn');
await saveTestButton.click();
await commonScreenshots.takeScreenshot('serverlog-params-test', screenshotDirectories);
const flyOutCancelButton = await testSubjects.find('euiFlyoutCloseButton');
await flyOutCancelButton.click();
});
});
}

View file

@ -0,0 +1,54 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { FtrProviderContext } from '../../../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const commonScreenshots = getService('commonScreenshots');
const screenshotDirectories = ['response_ops_docs', 'stack_connectors'];
const pageObjects = getPageObjects(['common', 'header']);
const actions = getService('actions');
const testSubjects = getService('testSubjects');
describe('slack connector', function () {
beforeEach(async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
});
it('slack api connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('slack');
await testSubjects.click('.slack_apiButton');
await testSubjects.setValue('nameInput', 'Slack api test connector');
await testSubjects.setValue('secrets.token-input', 'xoxb-XXXX-XXXX-XXXX');
await commonScreenshots.takeScreenshot('slack-api-connector', screenshotDirectories);
await testSubjects.click('create-connector-flyout-save-test-btn');
await testSubjects.click('toastCloseButton');
await pageObjects.common.closeToast();
await commonScreenshots.takeScreenshot('slack-api-params', screenshotDirectories);
await testSubjects.click('euiFlyoutCloseButton');
});
it('slack webhook connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('slack');
await testSubjects.setValue('nameInput', 'Slack webhook test connector');
await testSubjects.setValue(
'slackWebhookUrlInput',
'https://hooks.slack.com/services/abcd/ljklmnopqrstuvwxz'
);
await commonScreenshots.takeScreenshot('slack-webhook-connector', screenshotDirectories);
await testSubjects.click('create-connector-flyout-save-test-btn');
await testSubjects.click('toastCloseButton');
await commonScreenshots.takeScreenshot('slack-webhook-params', screenshotDirectories);
await testSubjects.click('euiFlyoutCloseButton');
});
});
}

View file

@ -0,0 +1,43 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { FtrProviderContext } from '../../../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const commonScreenshots = getService('commonScreenshots');
const screenshotDirectories = ['response_ops_docs', 'stack_connectors'];
const pageObjects = getPageObjects(['common', 'header']);
const actions = getService('actions');
const testSubjects = getService('testSubjects');
const webhookJson =
`{\n` +
`"short_description": "{{context.rule.name}}",\n` +
`"description": "{{context.rule.description}}"`;
describe('webhook connector', function () {
beforeEach(async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
});
it('webhook connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('webhook');
await testSubjects.setValue('nameInput', 'Webhook test connector');
await testSubjects.setValue('webhookUrlText', 'https://example.com');
await testSubjects.setValue('webhookUserInput', 'testuser');
await testSubjects.setValue('webhookPasswordInput', 'password');
await commonScreenshots.takeScreenshot('webhook-connector', screenshotDirectories);
const saveTestButton = await testSubjects.find('create-connector-flyout-save-test-btn');
await saveTestButton.click();
await testSubjects.setValue('actionJsonEditor', webhookJson);
await commonScreenshots.takeScreenshot('webhook-params-test', screenshotDirectories);
await testSubjects.click('euiFlyoutCloseButton');
});
});
}