[explore] DatasourceControl to pick datasource in modal (#3210)

* [explore] DatasourceControl to pick datasource in modal

Makes it easier to change datasource, also makes it such that the list
of all datasources doesn't need to be loaded upfront.

* Adding more metadata
This commit is contained in:
Maxime Beauchemin
2017-08-01 12:08:00 -07:00
committed by GitHub
parent 48821b5101
commit 62fcdf2a92
18 changed files with 257 additions and 126 deletions

View File

@@ -82,44 +82,6 @@ describe('fetching actions', () => {
});
});
describe('fetchDatasources', () => {
const makeRequest = () => {
request = actions.fetchDatasources();
request(dispatch);
};
it('calls fetchDatasourcesStarted', () => {
makeRequest();
expect(dispatch.args[0][0].type).to.equal(actions.FETCH_DATASOURCES_STARTED);
});
it('makes the ajax request', () => {
makeRequest();
expect(ajaxStub.calledOnce).to.be.true;
});
it('calls correct url', () => {
const url = '/superset/datasources/';
makeRequest();
expect(ajaxStub.getCall(0).args[0].url).to.equal(url);
});
it('calls correct actions on error', () => {
ajaxStub.yieldsTo('error', { responseJSON: { error: 'error text' } });
makeRequest();
expect(dispatch.callCount).to.equal(2);
expect(dispatch.getCall(1).args[0].type).to.equal(actions.FETCH_DATASOURCES_FAILED);
});
it('calls correct actions on success', () => {
ajaxStub.yieldsTo('success', { data: '' });
makeRequest();
expect(dispatch.callCount).to.equal(3);
expect(dispatch.getCall(1).args[0].type).to.equal(actions.SET_DATASOURCES);
expect(dispatch.getCall(2).args[0].type).to.equal(actions.FETCH_DATASOURCES_SUCCEEDED);
});
});
describe('fetchDashboards', () => {
const userID = 1;
const mockDashboardData = {