mirror of
https://github.com/apache/superset.git
synced 2026-04-19 16:14:52 +00:00
[SIP-5] Build metrics in query_object in the client
- Unify the metric interface (absorb the current plain string metric for built-in metric keys into the format used by adhoc metric) - Port the logic in adhocMetric on the client and process_metrics in the backend to the new typed Metrics class - Omit hasCustomLabel and formFromData properties from the new metric interface as their value can be inferred from label and optionName - Expose from the Metrics class both metrics and their labels as public methods to match the all_metrics and metric_labels fields in the backend code - Provide defaut values for filters, metrics and groupby in the backend
This commit is contained in:
committed by
Christine Chambers
parent
2731a010ca
commit
c11e9c8b67
@@ -1,13 +1,24 @@
|
||||
import build from 'src/query/buildQueryObject';
|
||||
import build, { QueryObject } from 'src/query/buildQueryObject';
|
||||
|
||||
describe('queryObjectBuilder', () => {
|
||||
let query: QueryObject;
|
||||
|
||||
it('should build granularity for sql alchemy datasources', () => {
|
||||
const query = build({datasource: '5__table', granularity_sqla: 'ds'});
|
||||
query = build({datasource: '5__table', granularity_sqla: 'ds'});
|
||||
expect(query.granularity).toEqual('ds');
|
||||
});
|
||||
|
||||
it('should build granularity for sql alchemy datasources', () => {
|
||||
const query = build({datasource: '5__druid', granularity: 'ds'});
|
||||
query = build({datasource: '5__druid', granularity: 'ds'});
|
||||
expect(query.granularity).toEqual('ds');
|
||||
});
|
||||
|
||||
it('should build metrics', () => {
|
||||
query = build({
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
metric: 'sum__num',
|
||||
});
|
||||
expect(query.metrics).toEqual([{label: 'sum__num'}]);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user