Skip to content

Commit

Permalink
Merge branch 'main' into workflow-insights-ui-remediation
Browse files Browse the repository at this point in the history
  • Loading branch information
szwarckonrad committed Nov 28, 2024
2 parents 6003d2f + 9724c46 commit eb57aba
Show file tree
Hide file tree
Showing 19 changed files with 305 additions and 375 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@ export const CreateRuleForm = (props: CreateRuleFormProps) => {
multiConsumerSelection,
validConsumers,
ruleType,
ruleTypes,
}),
}}
>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ describe('rulePage', () => {
render(<RulePage onCancel={onCancel} onSave={onSave} />);

fireEvent.click(screen.getByTestId('rulePageFooterCancelButton'));
expect(screen.getByTestId('ruleFormCancelModal')).toBeInTheDocument();
expect(screen.getByTestId('confirmRuleCloseModal')).toBeInTheDocument();
});

test('should not display discard changes modal id no changes are made in the form', () => {
Expand Down Expand Up @@ -181,6 +181,6 @@ describe('rulePage', () => {
render(<RulePage onCancel={onCancel} onSave={onSave} />);

fireEvent.click(screen.getByTestId('rulePageFooterCancelButton'));
expect(screen.queryByTestId('ruleFormCancelModal')).not.toBeInTheDocument();
expect(screen.queryByTestId('confirmRuleCloseModal')).not.toBeInTheDocument();
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ export const RulePage = (props: RulePageProps) => {
<EuiConfirmModal
onCancel={() => setIsCancelModalOpen(false)}
onConfirm={onCancel}
data-test-subj="ruleFormCancelModal"
data-test-subj="confirmRuleCloseModal"
buttonColor="danger"
defaultFocusedButton="confirm"
title={RULE_FORM_CANCEL_MODAL_TITLE}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { AlertConsumers, RuleCreationValidConsumer } from '@kbn/rule-data-utils'
import { RuleTypeWithDescription } from '../../common/types';
import { MULTI_CONSUMER_RULE_TYPE_IDS } from '../constants';
import { FEATURE_NAME_MAP } from '../translations';
import { getAuthorizedConsumers } from './get_authorized_consumers';

export const getValidatedMultiConsumer = ({
multiConsumerSelection,
Expand All @@ -33,10 +34,12 @@ export const getInitialMultiConsumer = ({
multiConsumerSelection,
validConsumers,
ruleType,
ruleTypes,
}: {
multiConsumerSelection?: RuleCreationValidConsumer | null;
validConsumers: RuleCreationValidConsumer[];
ruleType: RuleTypeWithDescription;
ruleTypes: RuleTypeWithDescription[];
}): RuleCreationValidConsumer | null => {
// If rule type doesn't support multi-consumer or no valid consumers exists,
// return nothing
Expand All @@ -54,6 +57,23 @@ export const getInitialMultiConsumer = ({
return AlertConsumers.OBSERVABILITY;
}

const selectedAvailableRuleType = ruleTypes.find((availableRuleType) => {
return availableRuleType.id === ruleType.id;
});

if (!selectedAvailableRuleType?.authorizedConsumers) {
return null;
}

const authorizedConsumers = getAuthorizedConsumers({
ruleType: selectedAvailableRuleType,
validConsumers,
});

if (authorizedConsumers.length === 1) {
return authorizedConsumers[0];
}

// User passed in null explicitly, won't set initial consumer
if (multiConsumerSelection === null) {
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ import {
useKibana,
useFormIsModified,
} from '../../../shared_imports';
import { toasts } from '../../services/notification';
import { getPoliciesListPath, getPolicyViewPath } from '../../services/navigation';
import { UseField } from './form';
import { savePolicy } from './save_policy';
Expand Down Expand Up @@ -137,25 +136,21 @@ export const EditPolicy: React.FunctionComponent = () => {
const { data: policy, isValid } = await form.submit();

if (!isValid) {
toasts.addDanger(
i18n.translate('xpack.indexLifecycleMgmt.editPolicy.formErrorsMessage', {
defaultMessage: 'Please fix the errors on this page.',
})
);
} else {
const name = getPolicyName();
setHasSubmittedForm(true);
const success = await savePolicy(
{
...policy,
name,
},
isNewPolicy || isClonedPolicy
);

if (success) {
backToPolicyList(name);
}
return;
}

const name = getPolicyName();
setHasSubmittedForm(true);
const success = await savePolicy(
{
...policy,
name,
},
isNewPolicy || isClonedPolicy
);

if (success) {
backToPolicyList(name);
}
};

Expand Down
1 change: 0 additions & 1 deletion x-pack/plugins/translations/translations/fr-FR.json
Original file line number Diff line number Diff line change
Expand Up @@ -23702,7 +23702,6 @@
"xpack.indexLifecycleMgmt.editPolicy.forceMerge.enableExplanationText": "Réduisez le nombre de segments dans chaque partition d'index et nettoyez les documents supprimés.",
"xpack.indexLifecycleMgmt.editPolicy.forceMerge.enableText": "Forcer la fusion",
"xpack.indexLifecycleMgmt.editPolicy.forcemerge.numberOfSegmentsRequiredError": "Valeur obligatoire du nombre de segments.",
"xpack.indexLifecycleMgmt.editPolicy.formErrorsMessage": "Veuillez corriger les erreurs sur cette page.",
"xpack.indexLifecycleMgmt.editPolicy.frozenPhase.activateFrozenPhaseSwitchLabel": "Activer la phase \"frozen\"",
"xpack.indexLifecycleMgmt.editPolicy.frozenPhase.frozenPhaseDescription": "Transférez les données au niveau \"frozen\" pour les conserver sur le long terme. Le niveau \"frozen\" représente le moyen le plus rentable de conserver vos données tout en permettant d'effectuer des recherches.",
"xpack.indexLifecycleMgmt.editPolicy.frozenPhase.frozenPhaseTitle": "Phase \"frozen\"",
Expand Down
1 change: 0 additions & 1 deletion x-pack/plugins/translations/translations/ja-JP.json
Original file line number Diff line number Diff line change
Expand Up @@ -23674,7 +23674,6 @@
"xpack.indexLifecycleMgmt.editPolicy.forceMerge.enableExplanationText": "各インデックスシャードのセグメント数を減らし、削除したドキュメントをクリーンアップします。",
"xpack.indexLifecycleMgmt.editPolicy.forceMerge.enableText": "強制結合",
"xpack.indexLifecycleMgmt.editPolicy.forcemerge.numberOfSegmentsRequiredError": "セグメント数の評価が必要です。",
"xpack.indexLifecycleMgmt.editPolicy.formErrorsMessage": "このページのエラーを修正してください。",
"xpack.indexLifecycleMgmt.editPolicy.frozenPhase.activateFrozenPhaseSwitchLabel": "フローズンフェーズをアクティブ化",
"xpack.indexLifecycleMgmt.editPolicy.frozenPhase.frozenPhaseDescription": "長期間保持する場合はデータをフローズンティアに移動します。フローズンティアはデータを格納し、検索することもできる最も費用対効果が高い方法です。",
"xpack.indexLifecycleMgmt.editPolicy.frozenPhase.frozenPhaseTitle": "フローズンフェーズ",
Expand Down
1 change: 0 additions & 1 deletion x-pack/plugins/translations/translations/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -23273,7 +23273,6 @@
"xpack.indexLifecycleMgmt.editPolicy.forceMerge.enableExplanationText": "减少每个索引分片中的分段数目,并清除删除的文档。",
"xpack.indexLifecycleMgmt.editPolicy.forceMerge.enableText": "强制合并",
"xpack.indexLifecycleMgmt.editPolicy.forcemerge.numberOfSegmentsRequiredError": "必须指定分段数的值。",
"xpack.indexLifecycleMgmt.editPolicy.formErrorsMessage": "请修复此页面上的错误。",
"xpack.indexLifecycleMgmt.editPolicy.frozenPhase.activateFrozenPhaseSwitchLabel": "激活冻结阶段",
"xpack.indexLifecycleMgmt.editPolicy.frozenPhase.frozenPhaseDescription": "将数据移到冻层以长期保留。冻层提供最有成本效益的方法存储数据,并且仍能够搜索数据。",
"xpack.indexLifecycleMgmt.editPolicy.frozenPhase.frozenPhaseTitle": "冻结阶段",
Expand Down
2 changes: 1 addition & 1 deletion x-pack/test/functional/services/ml/alerting.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export function MachineLearningAlertingProvider(
async selectAnomalyDetectionAlertType() {
await retry.tryForTime(5000, async () => {
await testSubjects.click('xpack.ml.anomaly_detection_alert-SelectOption');
await testSubjects.existOrFail(`mlAnomalyAlertForm`, { timeout: 1000 });
await testSubjects.existOrFail(`mlAnomalyAlertForm`);
});
},

Expand Down
10 changes: 4 additions & 6 deletions x-pack/test/functional/services/rules/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export function RulesCommonServiceProvider({ getService, getPageObject }: FtrPro
},

async cancelRuleCreation() {
await testSubjects.click('cancelSaveRuleButton');
await testSubjects.click('rulePageFooterCancelButton');
await testSubjects.existOrFail('confirmRuleCloseModal');
await testSubjects.click('confirmRuleCloseModal > confirmModalConfirmButton');
await testSubjects.missingOrFail('confirmRuleCloseModal');
Expand All @@ -43,8 +43,6 @@ export function RulesCommonServiceProvider({ getService, getPageObject }: FtrPro
await browser.refresh();
await this.clickCreateAlertButton();
await testSubjects.click(`.index-threshold-SelectOption`);
await testSubjects.scrollIntoView('ruleNameInput');
await testSubjects.setValue('ruleNameInput', alertName);
await testSubjects.scrollIntoView('selectIndexExpression');
await testSubjects.click('selectIndexExpression');
await comboBox.set('thresholdIndexesComboBox', 'k');
Expand All @@ -55,9 +53,6 @@ export function RulesCommonServiceProvider({ getService, getPageObject }: FtrPro
await fieldOptions[1].click();
});
await testSubjects.click('closePopover');
// need this two out of popup clicks to close them
const nameInput = await testSubjects.find('ruleNameInput');
await nameInput.click();

await testSubjects.click('whenExpression');
await testSubjects.click('whenExpressionSelect');
Expand All @@ -74,6 +69,9 @@ export function RulesCommonServiceProvider({ getService, getPageObject }: FtrPro
const ofOptions = ofOptionsString.trim().split('\n');
expect(ofOptions.length > 0).to.be(true);
await comboBox.set('availableFieldsOptionsComboBox', ofOptions[0]);

await testSubjects.scrollIntoView('ruleDetailsNameInput');
await testSubjects.setValue('ruleDetailsNameInput', alertName);
},
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -470,7 +470,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {

await testSubjects.click('thresholdPopover');
await testSubjects.setValue('alertThresholdInput0', '1');
await testSubjects.click('saveEditedRuleButton');
await testSubjects.click('rulePageFooterSaveButton');
await PageObjects.header.waitUntilLoadingHasFinished();

await openAlertResults(RULE_NAME);
Expand Down Expand Up @@ -622,8 +622,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.header.waitUntilLoadingHasFinished();

await retry.waitFor('rule name value is correct', async () => {
await testSubjects.setValue('ruleNameInput', newAlert);
const ruleName = await testSubjects.getAttribute('ruleNameInput', 'value');
await testSubjects.setValue('ruleDetailsNameInput', newAlert);
const ruleName = await testSubjects.getAttribute('ruleDetailsNameInput', 'value');
return ruleName === newAlert;
});

Expand All @@ -641,10 +641,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
);
await sourceDataViewOption.click();

await testSubjects.click('saveRuleButton');
await testSubjects.click('rulePageFooterSaveButton');

await retry.waitFor('confirmation modal', async () => {
return await testSubjects.exists('confirmModalConfirmButton');
return await testSubjects.exists('rulePageConfirmCreateRule');
});

await testSubjects.click('confirmModalConfirmButton');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
await pageObjects.triggersActionsUI.setAlertName('ml-test-alert');
await pageObjects.triggersActionsUI.setAlertInterval(10, 's');
await pageObjects.triggersActionsUI.saveAlert();
await ml.navigation.navigateToAlertsAndAction();
await pageObjects.triggersActionsUI.clickOnAlertInAlertsList('ml-test-alert');
});
});
Expand Down
Loading

0 comments on commit eb57aba

Please sign in to comment.