123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- import {DisplayType, WidgetType} from 'sentry/views/dashboards/types';
- import {convertWidgetToBuilderStateParams} from 'sentry/views/dashboards/widgetBuilder/utils/convertWidgetToBuilderStateParams';
- import {getDefaultWidget} from 'sentry/views/dashboards/widgetBuilder/utils/getDefaultWidget';
- describe('convertWidgetToBuilderStateParams', () => {
- it('should not pass along yAxis when converting a table to builder params', () => {
- const widget = {
- ...getDefaultWidget(WidgetType.ERRORS),
- displayType: DisplayType.TABLE,
- aggregates: ['count()'],
- };
- const params = convertWidgetToBuilderStateParams(widget);
- expect(params.yAxis).toEqual([]);
- });
- it('stringifies the fields when converting a table to builder params', () => {
- const widget = {
- ...getDefaultWidget(WidgetType.ERRORS),
- displayType: DisplayType.TABLE,
- queries: [
- {
- aggregates: [],
- columns: [],
- conditions: '',
- name: '',
- orderby: '',
- fields: ['geo.country'],
- fieldAliases: ['test'],
- },
- ],
- };
- const params = convertWidgetToBuilderStateParams(widget);
- expect(params.field).toEqual(['{"field":"geo.country","alias":"test"}']);
- });
- it('adds legend aliases to the builder params on charts', () => {
- const widget = {
- ...getDefaultWidget(WidgetType.ERRORS),
- displayType: DisplayType.AREA,
- queries: [
- {
- aggregates: [],
- columns: [],
- conditions: 'transaction.duration:>100',
- orderby: '',
- name: 'test',
- },
- {
- aggregates: [],
- columns: [],
- conditions: 'transaction.duration:>50',
- orderby: '',
- name: 'test2',
- },
- ],
- };
- const params = convertWidgetToBuilderStateParams(widget);
- expect(params.legendAlias).toEqual(['test', 'test2']);
- });
- it('does not duplicate filters because of multiple widget queries', () => {
- const widget = {
- ...getDefaultWidget(WidgetType.ERRORS),
- displayType: DisplayType.LINE,
- queries: [
- {
- aggregates: ['count()'],
- columns: [],
- conditions: 'one condition',
- orderby: '',
- name: '',
- },
- {
- aggregates: ['count()'],
- columns: [],
- conditions: 'second condition',
- orderby: '',
- name: '',
- },
- ],
- };
- const params = convertWidgetToBuilderStateParams(widget);
- expect(params.query).toEqual(['one condition', 'second condition']);
- expect(params.yAxis).toEqual(['count()']);
- });
- it('exposes the selected aggregate in a widget query', () => {
- const widget = {
- ...getDefaultWidget(WidgetType.ERRORS),
- queries: [
- {
- aggregates: ['count()'],
- selectedAggregate: 0,
- columns: [],
- conditions: '',
- name: '',
- orderby: '',
- },
- ],
- };
- const params = convertWidgetToBuilderStateParams(widget);
- expect(params.selectedAggregate).toBe(0);
- });
- it('includes the thresholds in the builder params', () => {
- const widget = {
- ...getDefaultWidget(WidgetType.TRANSACTIONS),
- thresholds: {
- max_values: {
- max1: 200,
- max2: 300,
- },
- unit: 'milliseconds',
- },
- };
- const params = convertWidgetToBuilderStateParams(widget);
- expect(params.thresholds).toBe(
- '{"max_values":{"max1":200,"max2":300},"unit":"milliseconds"}'
- );
- });
- });
|