fix: refine shouldUseLegacyApi and add tests (#10148)

* fix: refine shouldUseLegacyApi and add tests

* address review comments
This commit is contained in:
Ville Brofeldt 2020-06-24 19:38:36 +03:00 committed by GitHub
parent 4e71491d86
commit 38667b72b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 45 additions and 2 deletions

View File

@ -23,8 +23,10 @@ import {
buildV1ChartDataPayload,
getExploreUrl,
getExploreLongUrl,
shouldUseLegacyApi,
} from 'src/explore/exploreUtils';
import * as hostNamesConfig from 'src/utils/hostNamesConfig';
import { getChartMetadataRegistry } from '@superset-ui/chart';
describe('exploreUtils', () => {
const location = window.location;
@ -202,4 +204,45 @@ describe('exploreUtils', () => {
expect(v1RequestPayload).hasOwnProperty('queries');
});
});
describe('shouldUseLegacyApi', () => {
beforeAll(() => {
getChartMetadataRegistry()
.registerValue('my_legacy_viz', { useLegacyApi: true })
.registerValue('my_v1_viz', { useLegacyApi: false });
});
afterAll(() => {
getChartMetadataRegistry().remove('my_legacy_viz').remove('my_v1_viz');
});
it('returns true for legacy viz', () => {
const useLegacyApi = shouldUseLegacyApi({
...formData,
viz_type: 'my_legacy_viz',
});
expect(useLegacyApi).toBe(true);
});
it('returns false for v1 viz', () => {
const useLegacyApi = shouldUseLegacyApi({
...formData,
viz_type: 'my_v1_viz',
});
expect(useLegacyApi).toBe(false);
});
it('returns false for formData with unregistered viz_type', () => {
const useLegacyApi = shouldUseLegacyApi({
...formData,
viz_type: 'undefined_viz',
});
expect(useLegacyApi).toBe(false);
});
it('returns false for formData without viz_type', () => {
const useLegacyApi = shouldUseLegacyApi(formData);
expect(useLegacyApi).toBe(false);
});
});
});

View File

@ -194,8 +194,8 @@ export function getExploreUrl({
}
export const shouldUseLegacyApi = formData => {
const { useLegacyApi } = getChartMetadataRegistry().get(formData.viz_type);
return useLegacyApi || false;
const vizMetadata = getChartMetadataRegistry().get(formData.viz_type);
return vizMetadata ? vizMetadata.useLegacyApi : false;
};
export const buildV1ChartDataPayload = ({