mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
* Unit-test current mapping for object types * Handle 'enabled' attribute for object fields * Handle 'dynamic' attribute for object fields Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
This commit is contained in:
parent
06c62cf286
commit
13222a547b
3 changed files with 105 additions and 1 deletions
|
@ -161,3 +161,101 @@ test('tests processing keyword field with multi fields with analyzed text field'
|
|||
const mappings = generateMappings(processedFields);
|
||||
expect(JSON.stringify(mappings)).toEqual(JSON.stringify(keywordWithAnalyzedMultiFieldsMapping));
|
||||
});
|
||||
|
||||
test('tests processing object field with no other attributes', () => {
|
||||
const objectFieldLiteralYml = `
|
||||
- name: objectField
|
||||
type: object
|
||||
`;
|
||||
const objectFieldMapping = {
|
||||
properties: {
|
||||
objectField: {
|
||||
type: 'object',
|
||||
},
|
||||
},
|
||||
};
|
||||
const fields: Field[] = safeLoad(objectFieldLiteralYml);
|
||||
const processedFields = processFields(fields);
|
||||
const mappings = generateMappings(processedFields);
|
||||
expect(JSON.stringify(mappings)).toEqual(JSON.stringify(objectFieldMapping));
|
||||
});
|
||||
|
||||
test('tests processing object field with enabled set to false', () => {
|
||||
const objectFieldEnabledFalseLiteralYml = `
|
||||
- name: objectField
|
||||
type: object
|
||||
enabled: false
|
||||
`;
|
||||
const objectFieldEnabledFalseMapping = {
|
||||
properties: {
|
||||
objectField: {
|
||||
type: 'object',
|
||||
enabled: false,
|
||||
},
|
||||
},
|
||||
};
|
||||
const fields: Field[] = safeLoad(objectFieldEnabledFalseLiteralYml);
|
||||
const processedFields = processFields(fields);
|
||||
const mappings = generateMappings(processedFields);
|
||||
expect(JSON.stringify(mappings)).toEqual(JSON.stringify(objectFieldEnabledFalseMapping));
|
||||
});
|
||||
|
||||
test('tests processing object field with dynamic set to false', () => {
|
||||
const objectFieldDynamicFalseLiteralYml = `
|
||||
- name: objectField
|
||||
type: object
|
||||
dynamic: false
|
||||
`;
|
||||
const objectFieldDynamicFalseMapping = {
|
||||
properties: {
|
||||
objectField: {
|
||||
type: 'object',
|
||||
dynamic: false,
|
||||
},
|
||||
},
|
||||
};
|
||||
const fields: Field[] = safeLoad(objectFieldDynamicFalseLiteralYml);
|
||||
const processedFields = processFields(fields);
|
||||
const mappings = generateMappings(processedFields);
|
||||
expect(JSON.stringify(mappings)).toEqual(JSON.stringify(objectFieldDynamicFalseMapping));
|
||||
});
|
||||
|
||||
test('tests processing object field with dynamic set to true', () => {
|
||||
const objectFieldDynamicTrueLiteralYml = `
|
||||
- name: objectField
|
||||
type: object
|
||||
dynamic: true
|
||||
`;
|
||||
const objectFieldDynamicTrueMapping = {
|
||||
properties: {
|
||||
objectField: {
|
||||
type: 'object',
|
||||
dynamic: true,
|
||||
},
|
||||
},
|
||||
};
|
||||
const fields: Field[] = safeLoad(objectFieldDynamicTrueLiteralYml);
|
||||
const processedFields = processFields(fields);
|
||||
const mappings = generateMappings(processedFields);
|
||||
expect(JSON.stringify(mappings)).toEqual(JSON.stringify(objectFieldDynamicTrueMapping));
|
||||
});
|
||||
|
||||
test('tests processing object field with dynamic set to strict', () => {
|
||||
const objectFieldDynamicStrictLiteralYml = `
|
||||
- name: objectField
|
||||
type: object
|
||||
dynamic: strict
|
||||
`;
|
||||
const objectFieldDynamicStrictMapping = {
|
||||
properties: {
|
||||
objectField: {
|
||||
type: 'object',
|
||||
dynamic: 'strict',
|
||||
},
|
||||
},
|
||||
};
|
||||
const fields: Field[] = safeLoad(objectFieldDynamicStrictLiteralYml);
|
||||
const processedFields = processFields(fields);
|
||||
const mappings = generateMappings(processedFields);
|
||||
expect(JSON.stringify(mappings)).toEqual(JSON.stringify(objectFieldDynamicStrictMapping));
|
||||
});
|
||||
|
|
|
@ -89,8 +89,13 @@ export function generateMappings(fields: Field[]): Mappings {
|
|||
}
|
||||
break;
|
||||
case 'object':
|
||||
// TODO improve
|
||||
fieldProps.type = 'object';
|
||||
if (field.hasOwnProperty('enabled')) {
|
||||
fieldProps.enabled = field.enabled;
|
||||
}
|
||||
if (field.hasOwnProperty('dynamic')) {
|
||||
fieldProps.dynamic = field.dynamic;
|
||||
}
|
||||
break;
|
||||
case 'array':
|
||||
// this assumes array fields were validated in an earlier step
|
||||
|
|
|
@ -27,6 +27,7 @@ export interface Field {
|
|||
ignore_above?: number;
|
||||
object_type?: string;
|
||||
scaling_factor?: number;
|
||||
dynamic?: 'strict' | boolean;
|
||||
|
||||
// Kibana specific
|
||||
analyzed?: boolean;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue