mirror of
https://github.com/apache/superset.git
synced 2026-04-16 14:45:21 +00:00
* [SIP-5] QueryBuilder in the client for groupby field - Lay the structure of the QueryContext builder in the client - QueryContext builder composes different portions of the queryContext object (to be sent to server from the client) from the datasourceBuilder and the queryObjectBuilder. - The datasourceBuilder builds the datasource id and type by parsing them from the datasource field in formdata - The queryObjectBuilder currently only builds the groupby field. It will further compose the queryObject from sub query builders in future PRs. - Create a buildQuery method for WordCloud and override the groupby value with the value of series from formdata. * Addressing PR comments - Rename query builder files and their default exports - Move tests into spec/javascripts/superset-ui for easy mass migration to superset-uiin the future - Define viz specific formData and export formData for each viz type as intersection type of the generic formData and the viz specific one - Specify the type signature for sqla and druid based data sources * Addressing additional PR comments. - Introduce a Datasource class and leverage Typescript's declaration merging of the interface by the same name. - Let Typescript infer the return type of various builders instead of specifying them explicitly * Further tweaking the generic buildQueryContext method and viz speicific buildQuery methodes per PR comments. * git mv a renamed file. * addressing additional pr comments
23 lines
924 B
TypeScript
23 lines
924 B
TypeScript
import build from 'src/query/buildQueryContext';
|
|
import * as queryObjectBuilder from 'src/query/buildQueryObject';
|
|
|
|
describe('queryContextBuilder', () => {
|
|
it('should build datasource for table sources', () => {
|
|
const queryContext = build({ datasource: '5__table', granularity_sqla: 'ds'});
|
|
expect(queryContext.datasource.id).toBe(5);
|
|
expect(queryContext.datasource.type).toBe('table');
|
|
});
|
|
|
|
it('should build datasource for druid sources', () => {
|
|
const queryContext = build({ datasource: '5__druid', granularity: 'ds'});
|
|
expect(queryContext.datasource.id).toBe(5);
|
|
expect(queryContext.datasource.type).toBe('druid');
|
|
});
|
|
|
|
it('should call queryObjectBuilder to build queries', () => {
|
|
const buildQueryObjectSpy = jest.spyOn(queryObjectBuilder, 'default');
|
|
build({ datasource: '5__table', granularity_sqla: 'ds'});
|
|
expect(buildQueryObjectSpy).toHaveBeenCalledTimes(1);
|
|
});
|
|
});
|