diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/append.test.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/append.test.tsx
new file mode 100644
index 0000000000000..af3651525d6a3
--- /dev/null
+++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/append.test.tsx
@@ -0,0 +1,118 @@
+/*
+ * 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 { act } from 'react-dom/test-utils';
+import { setup, SetupResult, getProcessorValue } from './processor.helpers';
+
+const APPEND_TYPE = 'append';
+
+describe('Processor: Append', () => {
+ let onUpdate: jest.Mock;
+ let testBed: SetupResult;
+
+ beforeAll(() => {
+ jest.useFakeTimers();
+ });
+
+ afterAll(() => {
+ jest.useRealTimers();
+ });
+
+ beforeEach(async () => {
+ onUpdate = jest.fn();
+
+ await act(async () => {
+ testBed = await setup({
+ value: {
+ processors: [],
+ },
+ onFlyoutOpen: jest.fn(),
+ onUpdate,
+ });
+ });
+ testBed.component.update();
+ const {
+ actions: { addProcessor, addProcessorType },
+ } = testBed;
+ // Open the processor flyout
+ addProcessor();
+
+ // Add type (the other fields are not visible until a type is selected)
+ await addProcessorType(APPEND_TYPE);
+ });
+
+ test('prevents form submission if required fields are not provided', async () => {
+ const {
+ actions: { saveNewProcessor },
+ form,
+ } = testBed;
+
+ // Click submit button with only the type defined
+ await saveNewProcessor();
+
+ // Expect form error as "field" and "value" are required parameters
+ expect(form.getErrorsMessages()).toEqual([
+ 'A field value is required.',
+ 'A value is required.',
+ ]);
+ });
+
+ test('saves with required parameter values', async () => {
+ const {
+ actions: { saveNewProcessor },
+ form,
+ find,
+ component,
+ } = testBed;
+
+ // Add "field" value (required)
+ form.setInputValue('fieldNameField.input', 'field_1');
+
+ await act(async () => {
+ find('appendValueField.input').simulate('change', [{ label: 'Some_Value' }]);
+ });
+ component.update();
+
+ // Save the field
+ await saveNewProcessor();
+
+ const processors = getProcessorValue(onUpdate, APPEND_TYPE);
+ expect(processors[0].append).toEqual({
+ field: 'field_1',
+ value: ['Some_Value'],
+ });
+ });
+
+ test('allows optional parameters to be set', async () => {
+ const {
+ actions: { saveNewProcessor },
+ form,
+ find,
+ component,
+ } = testBed;
+
+ // Add "field" value (required)
+ form.setInputValue('fieldNameField.input', 'field_1');
+
+ // Set optional parameteres
+ await act(async () => {
+ find('appendValueField.input').simulate('change', [{ label: 'Some_Value' }]);
+ component.update();
+ });
+
+ form.toggleEuiSwitch('ignoreFailureSwitch.input');
+ // Save the field with new changes
+ await saveNewProcessor();
+
+ const processors = getProcessorValue(onUpdate, APPEND_TYPE);
+ expect(processors[0].append).toEqual({
+ field: 'field_1',
+ ignore_failure: true,
+ value: ['Some_Value'],
+ });
+ });
+});
diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/bytes.test.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/bytes.test.tsx
index af4f6e468ca36..51117c3b517f9 100644
--- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/bytes.test.tsx
+++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/bytes.test.tsx
@@ -35,24 +35,21 @@ describe('Processor: Bytes', () => {
});
});
testBed.component.update();
- });
-
- test('prevents form submission if required fields are not provided', async () => {
const {
- actions: { addProcessor, saveNewProcessor, addProcessorType },
- form,
+ actions: { addProcessor, addProcessorType },
} = testBed;
-
- // Open flyout to add new processor
+ // Open the processor flyout
addProcessor();
- // Click submit button without entering any fields
- await saveNewProcessor();
-
- // Expect form error as a processor type is required
- expect(form.getErrorsMessages()).toEqual(['A type is required.']);
// Add type (the other fields are not visible until a type is selected)
await addProcessorType(BYTES_TYPE);
+ });
+
+ test('prevents form submission if required fields are not provided', async () => {
+ const {
+ actions: { saveNewProcessor },
+ form,
+ } = testBed;
// Click submit button with only the type defined
await saveNewProcessor();
@@ -61,16 +58,12 @@ describe('Processor: Bytes', () => {
expect(form.getErrorsMessages()).toEqual(['A field value is required.']);
});
- test('saves with default parameter values', async () => {
+ test('saves with required parameter values', async () => {
const {
- actions: { addProcessor, saveNewProcessor, addProcessorType },
+ actions: { saveNewProcessor },
form,
} = testBed;
- // Open flyout to add new processor
- addProcessor();
- // Add type (the other fields are not visible until a type is selected)
- await addProcessorType(BYTES_TYPE);
// Add "field" value (required)
form.setInputValue('fieldNameField.input', 'field_1');
// Save the field
@@ -84,14 +77,10 @@ describe('Processor: Bytes', () => {
test('allows optional parameters to be set', async () => {
const {
- actions: { addProcessor, addProcessorType, saveNewProcessor },
+ actions: { saveNewProcessor },
form,
} = testBed;
- // Open flyout to add new processor
- addProcessor();
- // Add type (the other fields are not visible until a type is selected)
- await addProcessorType(BYTES_TYPE);
// Add "field" value (required)
form.setInputValue('fieldNameField.input', 'field_1');
diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/processor.helpers.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/processor.helpers.tsx
index 8616241a43d8d..68f494a56af5d 100644
--- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/processor.helpers.tsx
+++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/processor.helpers.tsx
@@ -137,6 +137,7 @@ type TestSubject =
| 'addProcessorForm.submitButton'
| 'addProcessorButton'
| 'addProcessorForm.submitButton'
+ | 'appendValueField.input'
| 'processorTypeSelector.input'
| 'fieldNameField.input'
| 'mockCodeEditor'
diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/uri_parts.test.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/uri_parts.test.tsx
index 573adad3247f5..442788a7f75aa 100644
--- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/uri_parts.test.tsx
+++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/uri_parts.test.tsx
@@ -12,8 +12,6 @@ import { setup, SetupResult, getProcessorValue } from './processor.helpers';
const defaultUriPartsParameters = {
keep_original: undefined,
remove_if_successful: undefined,
- ignore_failure: undefined,
- description: undefined,
};
const URI_PARTS_TYPE = 'uri_parts';
@@ -43,19 +41,22 @@ describe('Processor: URI parts', () => {
});
});
testBed.component.update();
- });
- test('prevents form submission if required fields are not provided', async () => {
const {
- actions: { addProcessor, saveNewProcessor, addProcessorType },
- form,
+ actions: { addProcessor, addProcessorType },
} = testBed;
-
- // Open flyout to add new processor
+ // Open the processor flyout
addProcessor();
// Add type (the other fields are not visible until a type is selected)
await addProcessorType(URI_PARTS_TYPE);
+ });
+
+ test('prevents form submission if required fields are not provided', async () => {
+ const {
+ actions: { saveNewProcessor },
+ form,
+ } = testBed;
// Click submit button with only the type defined
await saveNewProcessor();
@@ -64,16 +65,12 @@ describe('Processor: URI parts', () => {
expect(form.getErrorsMessages()).toEqual(['A field value is required.']);
});
- test('saves with default parameter values', async () => {
+ test('saves with required parameter values', async () => {
const {
- actions: { addProcessor, saveNewProcessor, addProcessorType },
+ actions: { saveNewProcessor },
form,
} = testBed;
- // Open flyout to add new processor
- addProcessor();
- // Add type (the other fields are not visible until a type is selected)
- await addProcessorType(URI_PARTS_TYPE);
// Add "field" value (required)
form.setInputValue('fieldNameField.input', 'field_1');
// Save the field
@@ -88,14 +85,10 @@ describe('Processor: URI parts', () => {
test('allows optional parameters to be set', async () => {
const {
- actions: { addProcessor, addProcessorType, saveNewProcessor },
+ actions: { saveNewProcessor },
form,
} = testBed;
- // Open flyout to add new processor
- addProcessor();
- // Add type (the other fields are not visible until a type is selected)
- await addProcessorType(URI_PARTS_TYPE);
// Add "field" value (required)
form.setInputValue('fieldNameField.input', 'field_1');
@@ -109,9 +102,7 @@ describe('Processor: URI parts', () => {
const processors = getProcessorValue(onUpdate, URI_PARTS_TYPE);
expect(processors[0].uri_parts).toEqual({
- description: undefined,
field: 'field_1',
- ignore_failure: undefined,
keep_original: false,
remove_if_successful: true,
target_field: 'target_field',
diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/append.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/append.tsx
index d10347b4d9655..fde39e7462009 100644
--- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/append.tsx
+++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/append.tsx
@@ -52,7 +52,12 @@ export const Append: FunctionComponent = () => {
})}
/>
-
+
>
);
};