Skip to content

Commit 4d57fcc

Browse files
committed
updating
1 parent baf61ba commit 4d57fcc

File tree

4 files changed

+35
-32
lines changed

4 files changed

+35
-32
lines changed

src/plugins/data/public/actions/filters/create_filters_from_range_select.test.ts

Lines changed: 28 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import {
2424
RangeSelectEvent,
2525
} from './create_filters_from_range_select';
2626

27-
import { IndexPatternsContract } from '../../../public';
27+
import { IndexPatternsContract, RangeFilter } from '../../../public';
2828
import { dataPluginMock } from '../../../public/mocks';
2929
import { setIndexPatterns } from '../../../public/services';
3030
import { mockDataServices } from '../../../public/search/aggs/test_helpers';
@@ -34,33 +34,29 @@ describe('brushEvent', () => {
3434
const JAN_01_2014 = 1388559600000;
3535
let baseEvent: RangeSelectEvent;
3636

37+
const indexPattern = {
38+
id: 'indexPatternId',
39+
timeFieldName: 'time',
40+
fields: {
41+
getByName: () => undefined,
42+
filter: () => [],
43+
},
44+
};
45+
3746
const aggConfigs = [
3847
{
3948
params: {
4049
field: {},
4150
},
42-
getIndexPattern: () => ({
43-
timeFieldName: 'time',
44-
fields: {
45-
getByName: () => undefined,
46-
filter: () => [],
47-
},
48-
}),
51+
getIndexPattern: () => indexPattern,
4952
},
5053
];
5154

5255
beforeEach(() => {
5356
mockDataServices();
5457
setIndexPatterns(({
5558
...dataPluginMock.createStartContract().indexPatterns,
56-
get: async () => ({
57-
id: 'indexPatternId',
58-
timeFieldName: 'time',
59-
fields: {
60-
getByName: () => undefined,
61-
filter: () => [],
62-
},
63-
}),
59+
get: async () => indexPattern,
6460
} as unknown) as IndexPatternsContract);
6561

6662
baseEvent = {
@@ -90,7 +86,7 @@ describe('brushEvent', () => {
9086

9187
test('ignores event when data.xAxisField not provided', async () => {
9288
const filter = await createFiltersFromRangeSelectAction(baseEvent);
93-
expect(filter).toBeUndefined();
89+
expect(filter).toEqual([]);
9490
});
9591

9692
describe('handles an event when the x-axis field is a date field', () => {
@@ -100,18 +96,17 @@ describe('brushEvent', () => {
10096
name: 'time',
10197
type: 'date',
10298
};
103-
baseEvent.data.ordered = { date: true };
10499
});
105100

106101
afterAll(() => {
107102
baseEvent.range = [];
108-
baseEvent.data.ordered = { date: false };
103+
aggConfigs[0].params.field = {};
109104
});
110105

111106
test('by ignoring the event when range spans zero time', async () => {
112107
baseEvent.range = [JAN_01_2014, JAN_01_2014];
113108
const filter = await createFiltersFromRangeSelectAction(baseEvent);
114-
expect(filter).toBeUndefined();
109+
expect(filter).toEqual([]);
115110
});
116111

117112
test('by updating the timefilter', async () => {
@@ -120,9 +115,10 @@ describe('brushEvent', () => {
120115
expect(filter).toBeDefined();
121116

122117
if (filter.length) {
123-
expect(filter[0].range.time.gte).toBe(new Date(JAN_01_2014).toISOString());
118+
const rangeFilter = filter[0] as RangeFilter;
119+
expect(rangeFilter.range.time.gte).toBe(new Date(JAN_01_2014).toISOString());
124120
// Set to a baseline timezone for comparison.
125-
expect(filter[0].range.time.lt).toBe(new Date(JAN_01_2014 + DAY_IN_MS).toISOString());
121+
expect(rangeFilter.range.time.lt).toBe(new Date(JAN_01_2014 + DAY_IN_MS).toISOString());
126122
}
127123
});
128124
});
@@ -133,12 +129,11 @@ describe('brushEvent', () => {
133129
name: 'anotherTimeField',
134130
type: 'date',
135131
};
136-
baseEvent.data.ordered = { date: true };
137132
});
138133

139134
afterAll(() => {
140135
baseEvent.range = [];
141-
baseEvent.data.ordered = { date: false };
136+
aggConfigs[0].params.field = {};
142137
});
143138

144139
test('creates a new range filter', async () => {
@@ -150,9 +145,10 @@ describe('brushEvent', () => {
150145
expect(filter).toBeDefined();
151146

152147
if (filter.length) {
153-
expect(filter[0].range.anotherTimeField.gte).toBe(moment(rangeBegin).toISOString());
154-
expect(filter[0].range.anotherTimeField.lt).toBe(moment(rangeEnd).toISOString());
155-
expect(filter[0].range.anotherTimeField).toHaveProperty(
148+
const rangeFilter = filter[0] as RangeFilter;
149+
expect(rangeFilter.range.anotherTimeField.gte).toBe(moment(rangeBegin).toISOString());
150+
expect(rangeFilter.range.anotherTimeField.lt).toBe(moment(rangeEnd).toISOString());
151+
expect(rangeFilter.range.anotherTimeField).toHaveProperty(
156152
'format',
157153
'strict_date_optional_time'
158154
);
@@ -176,7 +172,7 @@ describe('brushEvent', () => {
176172
test('by ignoring the event when range does not span at least 2 values', async () => {
177173
baseEvent.range = [1];
178174
const filter = await createFiltersFromRangeSelectAction(baseEvent);
179-
expect(filter).toBeUndefined();
175+
expect(filter).toEqual([]);
180176
});
181177

182178
test('by creating a new filter', async () => {
@@ -186,9 +182,10 @@ describe('brushEvent', () => {
186182
expect(filter).toBeDefined();
187183

188184
if (filter.length) {
189-
expect(filter[0].range.numberField.gte).toBe(1);
190-
expect(filter[0].range.numberField.lt).toBe(4);
191-
expect(filter[0].range.numberField).not.toHaveProperty('format');
185+
const rangeFilter = filter[0] as RangeFilter;
186+
expect(rangeFilter.range.numberField.gte).toBe(1);
187+
expect(rangeFilter.range.numberField.lt).toBe(4);
188+
expect(rangeFilter.range.numberField).not.toHaveProperty('format');
192189
}
193190
});
194191
});

src/plugins/data/public/actions/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,6 @@
1919

2020
export { ACTION_GLOBAL_APPLY_FILTER, createFilterAction } from './apply_filter_action';
2121
export { createFiltersFromValueClickAction } from './filters/create_filters_from_value_click';
22+
export { createFiltersFromRangeSelectAction } from './filters/create_filters_from_range_select';
2223
export { selectRangeAction } from './select_range_action';
2324
export { valueClickAction } from './value_click_action';

src/plugins/data/public/plugin.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ import {
6262
ACTION_GLOBAL_APPLY_FILTER,
6363
createFilterAction,
6464
createFiltersFromValueClickAction,
65+
createFiltersFromRangeSelectAction,
6566
} from './actions';
6667
import { ApplyGlobalFilterActionContext } from './actions/apply_filter_action';
6768
import {
@@ -167,6 +168,7 @@ export class DataPublicPlugin implements Plugin<DataPublicPluginSetup, DataPubli
167168
const dataServices = {
168169
actions: {
169170
createFiltersFromValueClickAction,
171+
createFiltersFromRangeSelectAction,
170172
},
171173
autocomplete: this.autocomplete.start(),
172174
fieldFormats,

src/plugins/visualizations/public/expressions/vis.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,10 @@ export class ExprVis extends EventEmitter {
6969
events: {
7070
filter: (data: any) => {
7171
if (!this.eventsSubject) return;
72-
this.eventsSubject.next({ name: 'filterBucket', data });
72+
this.eventsSubject.next({
73+
name: 'filterBucket',
74+
data: data.data ? data : { negate: false, data: [data] },
75+
});
7376
},
7477
brush: (data: any) => {
7578
if (!this.eventsSubject) return;

0 commit comments

Comments
 (0)