From bacce90a5539c82f881f9331885e26542e68412c Mon Sep 17 00:00:00 2001 From: Chris Roberson Date: Wed, 26 Jul 2017 15:48:23 -0400 Subject: [PATCH] Add tests --- .../__tests__/field_caps_response.js | 30 +++++- .../fixtures/es_field_caps_response.json | 92 +++++++++++++++++++ 2 files changed, 119 insertions(+), 3 deletions(-) diff --git a/src/server/index_patterns/service/lib/field_capabilities/__tests__/field_caps_response.js b/src/server/index_patterns/service/lib/field_capabilities/__tests__/field_caps_response.js index 2a43ca2b55a3972..c0db141bb1dca82 100644 --- a/src/server/index_patterns/service/lib/field_capabilities/__tests__/field_caps_response.js +++ b/src/server/index_patterns/service/lib/field_capabilities/__tests__/field_caps_response.js @@ -19,7 +19,7 @@ describe('index_patterns/field_capabilities/field_caps_response', () => { describe('conflicts', () => { it('returns a field for each in response, no filtering', () => { const fields = readFieldCapsResponse(esResponse); - expect(fields).to.have.length(13); + expect(fields).to.have.length(19); }); it('includes only name, type, searchable, aggregatable, readFromDocValues, and maybe conflictDescriptions of each field', () => { @@ -65,8 +65,8 @@ describe('index_patterns/field_capabilities/field_caps_response', () => { { name: 'success', type: 'conflict', - searchable: false, - aggregatable: false, + searchable: true, + aggregatable: true, readFromDocValues: false, conflictDescriptions: { boolean: [ @@ -79,6 +79,30 @@ describe('index_patterns/field_capabilities/field_caps_response', () => { } ]); }); + + it('does not return conflicted fields if the types are resolvable to the same kibana type', () => { + const fields = readFieldCapsResponse(esResponse); + const resolvableToString = fields.find(f => f.name === 'resolvable_to_string'); + const resolvableToNumber = fields.find(f => f.name === 'resolvable_to_number'); + expect(resolvableToString.type).to.be('string'); + expect(resolvableToNumber.type).to.be('number'); + }); + + it('returns aggregatable if at least one field is aggregatable', () => { + const fields = readFieldCapsResponse(esResponse); + const mixAggregatable = fields.find(f => f.name === 'mix_aggregatable'); + const mixAggregatableOther = fields.find(f => f.name === 'mix_aggregatable_other'); + expect(mixAggregatable.aggregatable).to.be(true); + expect(mixAggregatableOther.aggregatable).to.be(true); + }); + + it('returns searchable if at least one field is searchable', () => { + const fields = readFieldCapsResponse(esResponse); + const mixSearchable = fields.find(f => f.name === 'mix_searchable'); + const mixSearchableOther = fields.find(f => f.name === 'mix_searchable_other'); + expect(mixSearchable.searchable).to.be(true); + expect(mixSearchableOther.searchable).to.be(true); + }); }); }); }); diff --git a/src/server/index_patterns/service/lib/field_capabilities/__tests__/fixtures/es_field_caps_response.json b/src/server/index_patterns/service/lib/field_capabilities/__tests__/fixtures/es_field_caps_response.json index 659489c7361c50a..d6fc2963f504e97 100644 --- a/src/server/index_patterns/service/lib/field_capabilities/__tests__/fixtures/es_field_caps_response.json +++ b/src/server/index_patterns/service/lib/field_capabilities/__tests__/fixtures/es_field_caps_response.json @@ -101,6 +101,98 @@ "searchable": false, "aggregatable": true } + }, + "resolvable_to_string": { + "text": { + "type": "text", + "searchable": true, + "aggregatable": true, + "indices": [ + "index1" + ] + }, + "keyword": { + "type": "keyword", + "searchable": true, + "aggregatable": true, + "indices": [ + "index2" + ] + } + }, + "resolvable_to_number": { + "integer": { + "type": "integer", + "searchable": true, + "aggregatable": true, + "indices": [ + "index1" + ] + }, + "long": { + "type": "long", + "searchable": true, + "aggregatable": true, + "indices": [ + "index2" + ] + } + }, + "mix_searchable": { + "text": { + "type": "text", + "searchable": false, + "aggregatable": true, + "indices": [ + "index1" + ] + }, + "keyword": { + "type": "keyword", + "searchable": true, + "aggregatable": true, + "indices": [ + "index2" + ] + } + }, + "mix_aggregatable": { + "text": { + "type": "text", + "searchable": true, + "aggregatable": false, + "indices": [ + "index1" + ] + }, + "keyword": { + "type": "keyword", + "searchable": true, + "aggregatable": true, + "indices": [ + "index2" + ] + } + }, + "mix_searchable_other": { + "int": { + "type": "integer", + "searchable": false, + "aggregatable": false, + "non_searchable_indices": [ + "index1" + ] + } + }, + "mix_aggregatable_other": { + "int": { + "type": "integer", + "searchable": false, + "aggregatable": false, + "non_aggregatable_indices": [ + "index1" + ] + } } } }