Skip to content

Commit

Permalink
hook up available databases
Browse files Browse the repository at this point in the history
  • Loading branch information
eschutho committed May 24, 2021
1 parent e8cd4f4 commit 95917e4
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -319,5 +319,72 @@ describe('DatabaseModal', () => {
const todoText = screen.getAllByText(/todo/i);
expect(todoText[0]).toBeVisible();
});

describe('create database', () => {
it('should show a form when dynamic_form is selected', async () => {
const props = {
...dbProps,
databaseId: null,
database_name: null,
sqlalchemy_uri: null,
};
render(<DatabaseModal {...props} />, { useRedux: true });
// it should have the correct header text
const headerText = screen.getByText(/connect a database/i);
expect(headerText).toBeVisible();

await screen.findByText(/display name/i);

// it does not fetch any databases if no id is passed in
expect(fetchMock.calls().length).toEqual(0);

// todo we haven't hooked this up to load dynamically yet so
// we can't currently test it
});
});

describe('edit database', () => {
it('renders the sqlalchemy form when the sqlalchemy_form configuration method is set', async () => {
render(<DatabaseModal {...dbProps} />, { useRedux: true });

// it should have tabs
const tabs = screen.getAllByRole('tab');
expect(tabs.length).toEqual(2);
expect(tabs[0]).toHaveTextContent('Basic');
expect(tabs[1]).toHaveTextContent('Advanced');

// it should have the correct header text
const headerText = screen.getByText(/edit database/i);
expect(headerText).toBeVisible();

// todo add more when this form is built out
});
it('renders the dynamic form when the dynamic_form configuration method is set', async () => {
fetchMock.get(DATABASE_FETCH_ENDPOINT, {
result: {
id: 10,
database_name: 'my database',
expose_in_sqllab: false,
allow_ctas: false,
allow_cvas: false,
configuration_method: 'dynamic_form',
parameters: {
database: 'mydatabase',
},
},
});
render(<DatabaseModal {...dbProps} />, { useRedux: true });

await screen.findByText(/todo/i);

// // it should have tabs
const tabs = screen.getAllByRole('tab');
expect(tabs.length).toEqual(2);

// it should show a TODO for now
const todoText = screen.getAllByText(/todo/i);
expect(todoText[0]).toBeVisible();
});
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -248,14 +248,16 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
// don't pass parameters if using the sqlalchemy uri
delete update.parameters;
}
updateResource(db.id as number, update as DatabaseObject).then(result => {
if (result) {
if (onDatabaseAdd) {
onDatabaseAdd();
}
onClose();
const result = await updateResource(
db.id as number,
update as DatabaseObject,
);
if (result) {
if (onDatabaseAdd) {
onDatabaseAdd();
}
});
onClose();
}
} else if (db) {
// Create
const dbId = await createResource(update as DatabaseObject);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,10 +181,6 @@ export const formStyles = (theme: SupersetTheme) => css`
font-size: ${theme.typography.sizes.s - 1}px;
margin-top: ${theme.gridUnit * 1.5}px;
}
.ant-modal-body {
padding-top: 0;
margin-bottom: 0;
}
.ant-tabs-content-holder {
overflow: auto;
max-height: 475px;
Expand Down

0 comments on commit 95917e4

Please sign in to comment.