mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
# Backport This will backport the following commits from `main` to `8.6`: - [[DOCS] Automate transform rule screenshots (#151087)](https://github.com/elastic/kibana/pull/151087) <!--- Backport version: 8.9.7 --> ### 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-02-20T12:29:39Z","message":"[DOCS] Automate transform rule screenshots (#151087)","sha":"6f4cbe21ccabf80b08e27acd54d82bdbd2d2ddb0","branchLabelMapping":{"^v8.8.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Feature:Transforms","docs","backport:prev-minor","v8.7.0","v8.6.2","v8.8.0"],"number":151087,"url":"https://github.com/elastic/kibana/pull/151087","mergeCommit":{"message":"[DOCS] Automate transform rule screenshots (#151087)","sha":"6f4cbe21ccabf80b08e27acd54d82bdbd2d2ddb0"}},"sourceBranch":"main","suggestedTargetBranches":["8.6"],"targetPullRequestStates":[{"branch":"8.7","label":"v8.7.0","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/151611","number":151611,"state":"MERGED","mergeCommit":{"sha":"18becb814d9458cd2935adf7158462a361914d63","message":"[8.7] [DOCS] Automate transform rule screenshots (#151087) (#151611)\n\n# Backport\n\nThis will backport the following commits from `main` to `8.7`:\n- [[DOCS] Automate transform rule screenshots\n(#151087)](https://github.com/elastic/kibana/pull/151087)\n\n<!--- Backport version: 8.9.7 -->\n\n### Questions ?\nPlease refer to the [Backport tool\ndocumentation](https://github.com/sqren/backport)\n\n<!--BACKPORT [{\"author\":{\"name\":\"Lisa\nCawley\",\"email\":\"lcawley@elastic.co\"},\"sourceCommit\":{\"committedDate\":\"2023-02-20T12:29:39Z\",\"message\":\"[DOCS]\nAutomate transform rule screenshots\n(#151087)\",\"sha\":\"6f4cbe21ccabf80b08e27acd54d82bdbd2d2ddb0\",\"branchLabelMapping\":{\"^v8.8.0$\":\"main\",\"^v(\\\\d+).(\\\\d+).\\\\d+$\":\"$1.$2\"}},\"sourcePullRequest\":{\"labels\":[\"release_note:skip\",\"Feature:Transforms\",\"docs\",\"backport:prev-minor\",\"v8.7.0\",\"v8.6.2\",\"v8.8.0\"],\"number\":151087,\"url\":\"https://github.com/elastic/kibana/pull/151087\",\"mergeCommit\":{\"message\":\"[DOCS]\nAutomate transform rule screenshots\n(#151087)\",\"sha\":\"6f4cbe21ccabf80b08e27acd54d82bdbd2d2ddb0\"}},\"sourceBranch\":\"main\",\"suggestedTargetBranches\":[\"8.7\",\"8.6\"],\"targetPullRequestStates\":[{\"branch\":\"8.7\",\"label\":\"v8.7.0\",\"labelRegex\":\"^v(\\\\d+).(\\\\d+).\\\\d+$\",\"isSourceBranch\":false,\"state\":\"NOT_CREATED\"},{\"branch\":\"8.6\",\"label\":\"v8.6.2\",\"labelRegex\":\"^v(\\\\d+).(\\\\d+).\\\\d+$\",\"isSourceBranch\":false,\"state\":\"NOT_CREATED\"},{\"branch\":\"main\",\"label\":\"v8.8.0\",\"labelRegex\":\"^v8.8.0$\",\"isSourceBranch\":true,\"state\":\"MERGED\",\"url\":\"https://github.com/elastic/kibana/pull/151087\",\"number\":151087,\"mergeCommit\":{\"message\":\"[DOCS]\nAutomate transform rule screenshots\n(#151087)\",\"sha\":\"6f4cbe21ccabf80b08e27acd54d82bdbd2d2ddb0\"}}]}]\nBACKPORT-->\n\nCo-authored-by: Lisa Cawley <lcawley@elastic.co>"}},{"branch":"8.6","label":"v8.6.2","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.8.0","labelRegex":"^v8.8.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/151087","number":151087,"mergeCommit":{"message":"[DOCS] Automate transform rule screenshots (#151087)","sha":"6f4cbe21ccabf80b08e27acd54d82bdbd2d2ddb0"}}]}] BACKPORT-->
This commit is contained in:
parent
ef9b5b2d80
commit
2ea3206504
6 changed files with 176 additions and 3 deletions
59
x-pack/test/functional/services/transform/alerting.ts
Normal file
59
x-pack/test/functional/services/transform/alerting.ts
Normal file
|
@ -0,0 +1,59 @@
|
|||
/*
|
||||
* 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 expect from '@kbn/expect';
|
||||
import { FtrProviderContext } from '../../ftr_provider_context';
|
||||
|
||||
export function TransformAlertingProvider({ getService }: FtrProviderContext) {
|
||||
const retry = getService('retry');
|
||||
const testSubjects = getService('testSubjects');
|
||||
const comboBox = getService('comboBox');
|
||||
return {
|
||||
async selectTransformAlertType() {
|
||||
await retry.tryForTime(5000, async () => {
|
||||
await testSubjects.click('transform_health-SelectOption');
|
||||
await testSubjects.existOrFail(`transformHealthAlertingRuleForm`, { timeout: 1000 });
|
||||
});
|
||||
},
|
||||
|
||||
async selectTransforms(transformIds: string[]) {
|
||||
for (const transformId of transformIds) {
|
||||
await comboBox.set('transformSelection > comboBoxInput', transformId);
|
||||
}
|
||||
await this.assertTransformSelection(transformIds);
|
||||
},
|
||||
|
||||
async assertTransformSelection(expectedTransformIds: string[]) {
|
||||
const comboBoxSelectedOptions = await comboBox.getComboBoxSelectedOptions(
|
||||
'transformSelection > comboBoxInput'
|
||||
);
|
||||
expect(comboBoxSelectedOptions).to.eql(
|
||||
expectedTransformIds,
|
||||
`Expected job selection to be '${expectedTransformIds}' (got '${comboBoxSelectedOptions}')`
|
||||
);
|
||||
},
|
||||
|
||||
async openAddRuleVariable() {
|
||||
await retry.tryForTime(5000, async () => {
|
||||
await testSubjects.click('messageAddVariableButton');
|
||||
await testSubjects.existOrFail('variableMenuButton-alert.actionGroup', { timeout: 1000 });
|
||||
});
|
||||
},
|
||||
|
||||
async setRuleName(rulename: string) {
|
||||
await testSubjects.setValue('ruleNameInput', rulename);
|
||||
},
|
||||
|
||||
async clickCancelSaveRuleButton() {
|
||||
await retry.tryForTime(5000, async () => {
|
||||
await testSubjects.click('cancelSaveRuleButton');
|
||||
await testSubjects.existOrFail('confirmModalTitleText', { timeout: 1000 });
|
||||
await testSubjects.click('confirmModalConfirmButton');
|
||||
});
|
||||
},
|
||||
};
|
||||
}
|
|
@ -18,6 +18,7 @@ import { TransformSourceSelectionProvider } from './source_selection';
|
|||
import { TransformTableProvider } from './transform_table';
|
||||
import { TransformTestExecutionProvider } from './test_execution';
|
||||
import { TransformWizardProvider } from './wizard';
|
||||
import { TransformAlertingProvider } from './alerting';
|
||||
|
||||
import { MachineLearningAPIProvider } from '../ml/api';
|
||||
import { MachineLearningTestResourcesProvider } from '../ml/test_resources';
|
||||
|
@ -36,8 +37,10 @@ export function TransformProvider(context: FtrProviderContext) {
|
|||
const testExecution = TransformTestExecutionProvider(context);
|
||||
const testResources = MachineLearningTestResourcesProvider(context, mlApi);
|
||||
const wizard = TransformWizardProvider(context);
|
||||
const alerting = TransformAlertingProvider(context);
|
||||
|
||||
return {
|
||||
alerting,
|
||||
api,
|
||||
discover,
|
||||
editFlyout,
|
||||
|
|
|
@ -7,12 +7,19 @@
|
|||
|
||||
import { FtrProviderContext } from '../../ftr_provider_context';
|
||||
|
||||
export function TransformNavigationProvider({ getPageObjects }: FtrProviderContext) {
|
||||
const PageObjects = getPageObjects(['common']);
|
||||
export function TransformNavigationProvider({ getPageObjects, getService }: FtrProviderContext) {
|
||||
const pageObjects = getPageObjects(['common']);
|
||||
const testSubjects = getService('testSubjects');
|
||||
|
||||
return {
|
||||
async navigateTo() {
|
||||
return await PageObjects.common.navigateToApp('transform');
|
||||
return await pageObjects.common.navigateToApp('transform');
|
||||
},
|
||||
|
||||
async navigateToRules() {
|
||||
await pageObjects.common.navigateToApp('triggersActions');
|
||||
await testSubjects.click('rulesTab');
|
||||
await testSubjects.existOrFail('rulesList');
|
||||
},
|
||||
};
|
||||
}
|
||||
|
|
|
@ -11,5 +11,6 @@ export default function ({ loadTestFile }: FtrProviderContext) {
|
|||
describe('apps', function () {
|
||||
loadTestFile(require.resolve('./ml_docs'));
|
||||
loadTestFile(require.resolve('./response_ops_docs'));
|
||||
loadTestFile(require.resolve('./transform_docs'));
|
||||
});
|
||||
}
|
||||
|
|
36
x-pack/test/screenshot_creation/apps/transform_docs/index.ts
Normal file
36
x-pack/test/screenshot_creation/apps/transform_docs/index.ts
Normal 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 { esTestConfig } from '@kbn/test';
|
||||
import { FtrProviderContext } from '../../ftr_provider_context';
|
||||
|
||||
export default function ({ getPageObject, getService, loadTestFile }: FtrProviderContext) {
|
||||
const browser = getService('browser');
|
||||
const ml = getService('ml');
|
||||
const securityPage = getPageObject('security');
|
||||
|
||||
describe('transform docs', function () {
|
||||
this.tags(['transforms']);
|
||||
|
||||
before(async () => {
|
||||
await ml.testResources.setKibanaTimeZoneToUTC();
|
||||
await ml.testResources.disableKibanaAnnouncements();
|
||||
await browser.setWindowSize(1920, 1080);
|
||||
await securityPage.login(
|
||||
esTestConfig.getUrlParts().username,
|
||||
esTestConfig.getUrlParts().password
|
||||
);
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await securityPage.forceLogout();
|
||||
await ml.testResources.resetKibanaTimeZone();
|
||||
await ml.testResources.resetKibanaAnnouncements();
|
||||
});
|
||||
|
||||
loadTestFile(require.resolve('./transform_alerts'));
|
||||
});
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
/*
|
||||
* 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 ({ getPageObjects, getService }: FtrProviderContext) {
|
||||
const actions = getService('actions');
|
||||
const browser = getService('browser');
|
||||
const commonScreenshots = getService('commonScreenshots');
|
||||
const testSubjects = getService('testSubjects');
|
||||
const transform = getService('transform');
|
||||
const screenshotDirectories = ['transform_docs'];
|
||||
const pageObjects = getPageObjects(['triggersActionsUI']);
|
||||
|
||||
let testTransformId = '';
|
||||
|
||||
describe('transform alerts', function () {
|
||||
before(async () => {
|
||||
await browser.setWindowSize(1920, 1080);
|
||||
await actions.api.createConnector({
|
||||
name: 'server-log-connector',
|
||||
config: {},
|
||||
secrets: {},
|
||||
connectorTypeId: '.server-log',
|
||||
});
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await actions.api.deleteAllConnectors();
|
||||
});
|
||||
|
||||
it('transform rule screenshot', async () => {
|
||||
await transform.testExecution.logTestStep('navigate to stack management rules');
|
||||
await transform.navigation.navigateToRules();
|
||||
await pageObjects.triggersActionsUI.clickCreateAlertButton();
|
||||
await transform.alerting.setRuleName('transform-health-rule');
|
||||
|
||||
await transform.testExecution.logTestStep(
|
||||
'search for transform rule type and take screenshot'
|
||||
);
|
||||
const searchBox = await testSubjects.find('ruleSearchField');
|
||||
await searchBox.click();
|
||||
await searchBox.clearValue();
|
||||
await searchBox.type('transform');
|
||||
await searchBox.pressKeys(browser.keys.ENTER);
|
||||
await commonScreenshots.takeScreenshot('transform-rule', screenshotDirectories);
|
||||
|
||||
await transform.testExecution.logTestStep('select transform details and take screenshot');
|
||||
await transform.alerting.selectTransformAlertType();
|
||||
testTransformId = '*';
|
||||
await transform.alerting.selectTransforms([testTransformId]);
|
||||
await commonScreenshots.takeScreenshot('transform-check-config', screenshotDirectories);
|
||||
|
||||
await transform.testExecution.logTestStep(
|
||||
'add server log connector and take action variable screenshot'
|
||||
);
|
||||
await testSubjects.click('.server-log-alerting-ActionTypeSelectOption');
|
||||
await transform.alerting.openAddRuleVariable();
|
||||
await commonScreenshots.takeScreenshot('transform-alert-actions', screenshotDirectories);
|
||||
await transform.alerting.clickCancelSaveRuleButton();
|
||||
});
|
||||
});
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue