Skip to content

Commit

Permalink
updating
Browse files Browse the repository at this point in the history
  • Loading branch information
ppisljar committed Apr 14, 2020
1 parent baf61ba commit 4d57fcc
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import {
RangeSelectEvent,
} from './create_filters_from_range_select';

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

const indexPattern = {
id: 'indexPatternId',
timeFieldName: 'time',
fields: {
getByName: () => undefined,
filter: () => [],
},
};

const aggConfigs = [
{
params: {
field: {},
},
getIndexPattern: () => ({
timeFieldName: 'time',
fields: {
getByName: () => undefined,
filter: () => [],
},
}),
getIndexPattern: () => indexPattern,
},
];

beforeEach(() => {
mockDataServices();
setIndexPatterns(({
...dataPluginMock.createStartContract().indexPatterns,
get: async () => ({
id: 'indexPatternId',
timeFieldName: 'time',
fields: {
getByName: () => undefined,
filter: () => [],
},
}),
get: async () => indexPattern,
} as unknown) as IndexPatternsContract);

baseEvent = {
Expand Down Expand Up @@ -90,7 +86,7 @@ describe('brushEvent', () => {

test('ignores event when data.xAxisField not provided', async () => {
const filter = await createFiltersFromRangeSelectAction(baseEvent);
expect(filter).toBeUndefined();
expect(filter).toEqual([]);
});

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

afterAll(() => {
baseEvent.range = [];
baseEvent.data.ordered = { date: false };
aggConfigs[0].params.field = {};
});

test('by ignoring the event when range spans zero time', async () => {
baseEvent.range = [JAN_01_2014, JAN_01_2014];
const filter = await createFiltersFromRangeSelectAction(baseEvent);
expect(filter).toBeUndefined();
expect(filter).toEqual([]);
});

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

if (filter.length) {
expect(filter[0].range.time.gte).toBe(new Date(JAN_01_2014).toISOString());
const rangeFilter = filter[0] as RangeFilter;
expect(rangeFilter.range.time.gte).toBe(new Date(JAN_01_2014).toISOString());
// Set to a baseline timezone for comparison.
expect(filter[0].range.time.lt).toBe(new Date(JAN_01_2014 + DAY_IN_MS).toISOString());
expect(rangeFilter.range.time.lt).toBe(new Date(JAN_01_2014 + DAY_IN_MS).toISOString());
}
});
});
Expand All @@ -133,12 +129,11 @@ describe('brushEvent', () => {
name: 'anotherTimeField',
type: 'date',
};
baseEvent.data.ordered = { date: true };
});

afterAll(() => {
baseEvent.range = [];
baseEvent.data.ordered = { date: false };
aggConfigs[0].params.field = {};
});

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

if (filter.length) {
expect(filter[0].range.anotherTimeField.gte).toBe(moment(rangeBegin).toISOString());
expect(filter[0].range.anotherTimeField.lt).toBe(moment(rangeEnd).toISOString());
expect(filter[0].range.anotherTimeField).toHaveProperty(
const rangeFilter = filter[0] as RangeFilter;
expect(rangeFilter.range.anotherTimeField.gte).toBe(moment(rangeBegin).toISOString());
expect(rangeFilter.range.anotherTimeField.lt).toBe(moment(rangeEnd).toISOString());
expect(rangeFilter.range.anotherTimeField).toHaveProperty(
'format',
'strict_date_optional_time'
);
Expand All @@ -176,7 +172,7 @@ describe('brushEvent', () => {
test('by ignoring the event when range does not span at least 2 values', async () => {
baseEvent.range = [1];
const filter = await createFiltersFromRangeSelectAction(baseEvent);
expect(filter).toBeUndefined();
expect(filter).toEqual([]);
});

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

if (filter.length) {
expect(filter[0].range.numberField.gte).toBe(1);
expect(filter[0].range.numberField.lt).toBe(4);
expect(filter[0].range.numberField).not.toHaveProperty('format');
const rangeFilter = filter[0] as RangeFilter;
expect(rangeFilter.range.numberField.gte).toBe(1);
expect(rangeFilter.range.numberField.lt).toBe(4);
expect(rangeFilter.range.numberField).not.toHaveProperty('format');
}
});
});
Expand Down
1 change: 1 addition & 0 deletions src/plugins/data/public/actions/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,6 @@

export { ACTION_GLOBAL_APPLY_FILTER, createFilterAction } from './apply_filter_action';
export { createFiltersFromValueClickAction } from './filters/create_filters_from_value_click';
export { createFiltersFromRangeSelectAction } from './filters/create_filters_from_range_select';
export { selectRangeAction } from './select_range_action';
export { valueClickAction } from './value_click_action';
2 changes: 2 additions & 0 deletions src/plugins/data/public/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ import {
ACTION_GLOBAL_APPLY_FILTER,
createFilterAction,
createFiltersFromValueClickAction,
createFiltersFromRangeSelectAction,
} from './actions';
import { ApplyGlobalFilterActionContext } from './actions/apply_filter_action';
import {
Expand Down Expand Up @@ -167,6 +168,7 @@ export class DataPublicPlugin implements Plugin<DataPublicPluginSetup, DataPubli
const dataServices = {
actions: {
createFiltersFromValueClickAction,
createFiltersFromRangeSelectAction,
},
autocomplete: this.autocomplete.start(),
fieldFormats,
Expand Down
5 changes: 4 additions & 1 deletion src/plugins/visualizations/public/expressions/vis.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,10 @@ export class ExprVis extends EventEmitter {
events: {
filter: (data: any) => {
if (!this.eventsSubject) return;
this.eventsSubject.next({ name: 'filterBucket', data });
this.eventsSubject.next({
name: 'filterBucket',
data: data.data ? data : { negate: false, data: [data] },
});
},
brush: (data: any) => {
if (!this.eventsSubject) return;
Expand Down

0 comments on commit 4d57fcc

Please sign in to comment.