mirror of
https://github.com/apache/superset.git
synced 2024-09-19 20:19:37 -04:00
test(added more tests): added more tests
This commit is contained in:
parent
02b9772ea8
commit
18dfc53f48
@ -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);
|
||||||
|
});
|
||||||
|
});
|
@ -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),
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
@ -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));
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user