From 18dfc53f487224730f035d373b45c93d38e3d946 Mon Sep 17 00:00:00 2001 From: Conglei Shi Date: Wed, 14 Aug 2019 11:21:13 -0700 Subject: [PATCH] test(added more tests): added more tests --- .../test/buildQuery.test.ts | 22 ++++++++ .../test/processData.test.ts | 54 +++++++++++++++++++ .../test/processMetrics.test.ts | 33 ++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-plugin-chart-table/test/buildQuery.test.ts create mode 100644 superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-plugin-chart-table/test/processData.test.ts create mode 100644 superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-plugin-chart-table/test/processMetrics.test.ts diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-plugin-chart-table/test/buildQuery.test.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-plugin-chart-table/test/buildQuery.test.ts new file mode 100644 index 0000000000..d6902c5d3b --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-plugin-chart-table/test/buildQuery.test.ts @@ -0,0 +1,22 @@ +import 'babel-polyfill'; +import buildQuery from '../src/buildQuery'; + +describe('TableVis buildQuery', () => { + const formData = { + datasource: '5__table', + granularity_sqla: 'ds', + series: 'foo', + viz_type: 'table', + all_columns: ['a', 'b', 'c'], + percent_metrics: ['a'], + include_time: false, + order_by_cols: [], + }; + + it('should build groupby with series in form data', () => { + const queryContext = buildQuery(formData); + const [query] = queryContext.queries; + expect(query.metrics[0].label).toEqual('a'); + expect(query.groupby).toHaveLength(0); + }); +}); diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-plugin-chart-table/test/processData.test.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-plugin-chart-table/test/processData.test.ts new file mode 100644 index 0000000000..97661ba10e --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-plugin-chart-table/test/processData.test.ts @@ -0,0 +1,54 @@ +import processData from '../src/processData'; + +describe('processData', () => { + const timeseriesLimitMetric = 'a'; + const orderDesc = true; + const records = [ + { + a: 1, + b: 1, + c: 3, + }, + { + a: 2, + b: 1, + c: 2, + }, + { + a: 3, + b: 1, + c: 1, + }, + ]; + const metrics = ['a', 'b', 'c']; + + it('returns sorted result', () => { + const result = processData({ + timeseriesLimitMetric, + orderDesc, + records, + metrics, + }); + const maxValue = Math.max(...records.map(r => r[timeseriesLimitMetric])); + const minValue = Math.min(...records.map(r => r[timeseriesLimitMetric])); + expect(result[0].data[timeseriesLimitMetric]).toEqual(maxValue); + expect(result[result.length - 1].data[timeseriesLimitMetric]).toEqual(minValue); + }); + + it('removes the timeseriesLimitMetric column if it is not included in metrics', () => { + const filteredMetrics = metrics.filter(metric => metric !== timeseriesLimitMetric); + const result = processData({ + timeseriesLimitMetric, + orderDesc, + records, + metrics: filteredMetrics, + }); + result.forEach(row => { + expect(row.data).toEqual( + expect.not.objectContaining({ + [timeseriesLimitMetric]: expect(Number), + }), + ); + }); + }); +}); diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-plugin-chart-table/test/processMetrics.test.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-plugin-chart-table/test/processMetrics.test.ts new file mode 100644 index 0000000000..448880ffc7 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-plugin-chart-table/test/processMetrics.test.ts @@ -0,0 +1,33 @@ +import processMetrics from '../src/processMetrics'; + +describe('processData', () => { + const records = [ + { + a: 1, + '%b': 0.4, + c: 3, + }, + { + a: 2, + '%b': 0.4, + c: 2, + }, + { + a: 3, + '%b': 0.2, + c: 1, + }, + ]; + const metrics = ['a']; + const percentMetrics = ['b']; + + it('returns sorted result', () => { + const result = processMetrics({ + records, + metrics, + percentMetrics, + }); + const expected = ['a', '%b']; + expect(result).toEqual(expect.arrayContaining(expected)); + }); +});