Skip to content

Commit

Permalink
fix(superset-ui-query): add unit tests for apache#387 (apache#390)
Browse files Browse the repository at this point in the history
  • Loading branch information
ktmud authored and zhaoyongjie committed Nov 26, 2021
1 parent 1917d84 commit 8ab578e
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ export default function buildQueryObject<T extends QueryFormData>(formData: T):
metrics: processMetrics(formData),
order_desc: typeof order_desc === 'undefined' ? true : order_desc,
orderby: [],
row_limit: row_limit == null || isNaN(numericRowLimit) ? undefined : numericRowLimit,
row_limit: row_limit == null || Number.isNaN(numericRowLimit) ? undefined : numericRowLimit,
since,
time_range,
timeseries_limit: limit ? Number(limit) : 0,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ export type BaseFormData = {
/** limit number of time series */
limit?: number;
/** limit number of row in the results */
row_limit?: number;
row_limit?: string | number | null;
/** The metric used to order timeseries for limiting */
timeseries_limit_metric?: QueryFormDataMetric;
} & TimeRange &
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { buildQueryContext } from '../src';

describe('queryContextBuilder', () => {
describe('buildQueryContext', () => {
it('should build datasource for table sources', () => {
const queryContext = buildQueryContext({
datasource: '5__table',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { buildQueryObject, QueryObject } from '../src';

describe('queryObjectBuilder', () => {
describe('buildQueryObject', () => {
let query: QueryObject;

it('should build granularity for sql alchemy datasources', () => {
Expand Down Expand Up @@ -63,4 +63,32 @@ describe('queryObjectBuilder', () => {
});
expect(query.timeseries_limit_metric).toEqual({ label: metric });
});

it('should handle null and non-numeric row_limit', () => {
const baseQuery = {
datasource: '5__table',
granularity_sqla: 'ds',
viz_type: 'table',
row_limit: null,
};

// undefined
query = buildQueryObject({ ...baseQuery });
expect(query.row_limit).toBeUndefined();

// null value
query = buildQueryObject({ ...baseQuery, row_limit: null });
expect(query.row_limit).toBeUndefined();

query = buildQueryObject({ ...baseQuery, row_limit: 1000 });
expect(query.row_limit).toStrictEqual(1000);

// valid string
query = buildQueryObject({ ...baseQuery, row_limit: '200' });
expect(query.row_limit).toStrictEqual(200);

// invalid string
query = buildQueryObject({ ...baseQuery, row_limit: 'two hundred' });
expect(query.row_limit).toBeUndefined();
});
});

0 comments on commit 8ab578e

Please sign in to comment.