Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Mappings editor] Add component integration tests #63853

Merged
merged 46 commits into from
May 7, 2020
Merged
Show file tree
Hide file tree
Changes from 42 commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
1318726
Test props.onUpdate() to make sure it forwards data to consumer
sebelga Apr 17, 2020
bf6be1e
Test props.defaultValue to make sure the editor is pre-populated corr…
sebelga Apr 17, 2020
50a6f92
Fix test and add missing "key" element on UseField components
sebelga Apr 17, 2020
60c87ee
Move expectDataUpdatedFactory to helpers and add editField helper
sebelga Apr 21, 2020
841b8d0
[testbed] Add "waitForFn" helper to wait for a predicate function
sebelga Apr 22, 2020
8385484
Add test of edit field (flyout) initial view
sebelga Apr 22, 2020
dce1813
[mappings editor] Strip undefined value from object returned
sebelga Apr 22, 2020
5feedcc
Test that default parameters values are added to the field when updated
sebelga Apr 22, 2020
905bae7
Remove unused
sebelga Apr 22, 2020
91a3b7b
Fix strip undefined logic to support Array and Date instances
sebelga Apr 22, 2020
ab0ecd7
Add expandAllFields helper
sebelga Apr 23, 2020
04930f7
Refactor helper to get data forwarded to consumer component
sebelga Apr 23, 2020
21513e9
Move the beforeEach logic inside the test
sebelga Apr 23, 2020
b26f5c8
Add coverage for analyzer default value and changes
sebelga Apr 23, 2020
93388a3
Fix act() error
sebelga Apr 23, 2020
a01f522
Fix TS issue
sebelga Apr 24, 2020
9a8d9b5
Test custom analyzer of external plugins
sebelga Apr 24, 2020
01605db
Test custom analyzer declared on index settings
sebelga Apr 24, 2020
2fe79d0
Fix default value for second dropdown select of analyzers
sebelga Apr 24, 2020
0f97d1f
Fix failing test
sebelga Apr 24, 2020
2b63142
Add mapped field test to make sure the DOM tree represents the mappin…
sebelga Apr 24, 2020
4e42d31
Refactor "defaultValue" to "value" to respect convention
sebelga Apr 24, 2020
d978d2a
Refactor "onUpdate" to "onChange" to respect convention
sebelga Apr 24, 2020
b45953b
Add test to make sure the MappingsEditor can be controlled
sebelga Apr 24, 2020
41735fb
Add TS doc on how to mock <EuiSuperSelect />
sebelga Apr 24, 2020
d797ae2
Restructure tests
sebelga Apr 27, 2020
21b5b8f
Test that the edit field form updates when switching datatype
sebelga Apr 27, 2020
ade4aa9
Merge branch 'master' into test/mappings-editor
elasticmachine Apr 27, 2020
3d78aa8
Merge branch 'master' into test/mappings-editor
elasticmachine Apr 27, 2020
80da167
Merge branch 'master' into test/mappings-editor
elasticmachine Apr 28, 2020
760efa2
Move "waitFor" outside act() calls
sebelga Apr 29, 2020
49876f3
[mappings editor] Fix regression when switching from "custom" to "bui…
sebelga Apr 29, 2020
118124e
Add web worker stub to remove console warning on missing Worker
sebelga Apr 29, 2020
49d0752
Fix textDatatype failing test
sebelga Apr 29, 2020
5aeda2d
Merge branch 'master' into test/mappings-editor
elasticmachine Apr 30, 2020
ac17d91
Address CR changes
sebelga Apr 30, 2020
2deaa38
Merge branch 'test/mappings-editor' of github.com:sebelga/kibana into…
sebelga Apr 30, 2020
d5c5179
Merge branch 'master' into test/mappings-editor
elasticmachine Apr 30, 2020
c669122
Inscrease timeout in test to 30s
sebelga May 1, 2020
4fc1055
Merge branch 'master' into test/mappings-editor
elasticmachine May 3, 2020
fe92ac4
Merge branch 'master' into test/mappings-editor
elasticmachine May 4, 2020
70bf068
Merge branch 'master' into test/mappings-editor
elasticmachine May 4, 2020
c56cb07
Merge branch 'master' into test/mappings-editor
elasticmachine May 6, 2020
ab76582
Address CR changes
sebelga May 6, 2020
793bbdc
Merge branch 'master' into test/mappings-editor
elasticmachine May 6, 2020
df5be1c
Merge branch 'master' into test/mappings-editor
elasticmachine May 7, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,15 @@ import React from 'react';
import axios from 'axios';
import axiosXhrAdapter from 'axios/lib/adapters/xhr';
import { MemoryRouter } from 'react-router-dom';

/**
* The below import is required to avoid a console error warn from brace package
* console.warn ../node_modules/brace/index.js:3999
Could not load worker ReferenceError: Worker is not defined
at createWorker (/<path-to-repo>/node_modules/brace/index.js:17992:5)
*/
import * as stubWebWorker from '../../../../test_utils/stub_web_worker'; // eslint-disable-line no-unused-vars

import { AppWithoutRouter } from '../../public/application/app';
import { AppContextProvider } from '../../public/application/app_context';
import { Provider } from 'react-redux';
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/

export { defaultShapeParameters } from './shape_datatype.test';
export { defaultTextParameters } from './text_datatype.test';
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/

import { act } from 'react-dom/test-utils';

import { componentHelpers, MappingsEditorTestBed } from '../helpers';

const { setup, getMappingsEditorDataFactory } = componentHelpers.mappingsEditor;
const onChangeHandler = jest.fn();
const getMappingsEditorData = getMappingsEditorDataFactory(onChangeHandler);

// Parameters automatically added to the shape datatype when saved (with the default values)
export const defaultShapeParameters = {
type: 'shape',
coerce: false,
ignore_malformed: false,
ignore_z_value: true,
};

describe('Mappings editor: shape datatype', () => {
let testBed: MappingsEditorTestBed;

/**
* Variable to store the mappings data forwarded to the consumer component
*/
let data: any;

test('initial view and default parameters values', async () => {
sebelga marked this conversation as resolved.
Show resolved Hide resolved
const defaultMappings = {
_meta: {},
_source: {},
properties: {
myField: {
type: 'shape',
},
},
};

const updatedMappings = { ...defaultMappings };

await act(async () => {
testBed = await setup({ value: defaultMappings, onChange: onChangeHandler });
});

const {
exists,
waitFor,
waitForFn,
actions: { startEditField, updateFieldAndCloseFlyout },
} = testBed;

// Open the flyout to edit the field
await act(async () => {
startEditField('myField');
});

await waitFor('mappingsEditorFieldEdit');

// Save the field and close the flyout
await act(async () => {
await updateFieldAndCloseFlyout();
});

await waitForFn(
async () => exists('mappingsEditorFieldEdit') === false,
'Error waiting for the details flyout to close'
);

// It should have the default parameters values added
updatedMappings.properties.myField = {
type: 'shape',
...defaultShapeParameters,
};

({ data } = await getMappingsEditorData());
expect(data).toEqual(updatedMappings);
});
});
Loading