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