clear query field value before setting value (#142943)

* clear query field value before setting value
This commit is contained in:
Ersin Erdal 2022-10-11 14:53:58 +02:00 committed by GitHub
parent 24b7807d79
commit e552f3be5c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 20 deletions

View file

@ -192,6 +192,7 @@ export const EsQueryExpression: React.FC<
<EuiSpacer size="s" />
<EuiFormRow
id="queryEditor"
data-test-subj="queryJsonEditor"
fullWidth
isInvalid={errors.esQuery.length > 0}
error={errors.esQuery}
@ -208,7 +209,6 @@ export const EsQueryExpression: React.FC<
languageId="xjson"
width="100%"
height="200px"
data-test-subj="queryJsonEditor"
value={xJson}
onChange={(xjson: string) => {
setXJson(xjson);

View file

@ -43,6 +43,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
await pageObjects.triggersActionsUI.clickCreateAlertButton();
await testSubjects.setValue('ruleNameInput', alertName);
await testSubjects.click(`.es-query-SelectOption`);
await testSubjects.click('queryFormType_esQuery');
await testSubjects.click('selectIndexExpression');
const indexComboBox = await find.byCssSelector('#indexSelectSearchBox');
await indexComboBox.click();
@ -112,8 +113,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
await testSubjects.missingOrFail('confirmRuleCloseModal');
}
// Failing: See https://github.com/elastic/kibana/issues/126873
describe.skip('create alert', function () {
describe('create alert', function () {
before(async () => {
await pageObjects.common.navigateToApp('triggersActions');
await testSubjects.click('rulesTab');
@ -279,10 +279,35 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
await discardNewRuleCreation();
});
it('should show error when es_query is invalid', async () => {
const alertName = generateUniqueKey();
await defineEsQueryAlert(alertName);
await testSubjects.setValue('queryJsonEditor', '', {
clearWithKeyboard: true,
});
const queryJsonEditor = await testSubjects.find('queryJsonEditor');
await queryJsonEditor.clearValue();
// Invalid query
await testSubjects.setValue('queryJsonEditor', '{"query":{"foo":""}}', {
clearWithKeyboard: true,
});
await testSubjects.click('testQuery');
await testSubjects.missingOrFail('testQuerySuccess');
await testSubjects.existOrFail('testQueryError');
await testSubjects.setValue('queryJsonEditor', '');
await discardNewRuleCreation();
});
it('should successfully test valid es_query alert', async () => {
const alertName = generateUniqueKey();
await defineEsQueryAlert(alertName);
await testSubjects.setValue('queryJsonEditor', '', {
clearWithKeyboard: true,
});
const queryJsonEditor = await testSubjects.find('queryJsonEditor');
await queryJsonEditor.clearValue();
// Valid query
await testSubjects.setValue('queryJsonEditor', '{"query":{"match_all":{}}}', {
clearWithKeyboard: true,
@ -294,23 +319,6 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
await discardNewRuleCreation();
});
it('should show error when es_query is invalid', async () => {
const alertName = generateUniqueKey();
await defineEsQueryAlert(alertName);
const queryJsonEditor = await testSubjects.find('queryJsonEditor');
await queryJsonEditor.clearValue();
// Invalid query
await testSubjects.setValue('queryJsonEditor', JSON.stringify({ query: { foo: {} } }), {
clearWithKeyboard: true,
});
await testSubjects.click('testQuery');
await testSubjects.missingOrFail('testQuerySuccess');
await testSubjects.existOrFail('testQueryError');
await discardNewRuleCreation();
});
it('should show all rule types on click euiFormControlLayoutClearButton', async () => {
await pageObjects.triggersActionsUI.clickCreateAlertButton();
await testSubjects.setValue('ruleNameInput', 'alertName');