Skip to content
Snippets Groups Projects
Commit 8cd74fe8 authored by Paul Rosenzweig's avatar Paul Rosenzweig Committed by Tom Robinson
Browse files

Fix bug saving database info in reference (#10940)

* database -> Databases

* add e2e test

* unused reference

* clean up after test

* create/delete db rather than trying to reset fields
parent 0573827f
No related merge requests found
......@@ -105,7 +105,7 @@ export const fetchDatabaseMetadata = (dbId, reload = false) => {
export const updateDatabase = database => {
deprecated("metabase/redux/metadata updateDatabase");
const slimDatabase = _.omit(database, "tables", "tables_lookup");
return database.actions.update(slimDatabase);
return Databases.actions.update(slimDatabase);
};
export const updateTable = table => {
......
import { useSharedAdminLogin, createTestStore } from "__support__/e2e_tests";
import { click } from "__support__/enzyme_utils";
import { click, clickButton, setInputValue } from "__support__/enzyme_utils";
import React from "react";
import { mount } from "enzyme";
import { CardApi } from "metabase/services";
import { CardApi, MetabaseApi } from "metabase/services";
import {
FETCH_DATABASE_METADATA,
......@@ -27,6 +27,9 @@ import ListItem from "metabase/components/ListItem";
import ReferenceHeader from "metabase/reference/components/ReferenceHeader";
import AdminAwareEmptyState from "metabase/components/AdminAwareEmptyState";
import UsefulQuestions from "metabase/reference/components/UsefulQuestions";
import Detail from "metabase/reference/components/Detail";
import EditButton from "metabase/reference/components/EditButton";
import EditHeader from "metabase/reference/components/EditHeader";
import QueryButton from "metabase/components/QueryButton";
import { INITIALIZE_QB, QUERY_COMPLETED } from "metabase/query_builder/actions";
import { getQuestion } from "metabase/query_builder/selectors";
......@@ -97,6 +100,50 @@ describe("The Reference Section", () => {
await store.waitForActions([FETCH_DATABASE_METADATA, END_LOADING]);
});
// database update
it("should update the sample database", async () => {
// create a new db by cloning #1
const d1 = await MetabaseApi.db_get({ dbId: 1 });
const { id } = await MetabaseApi.db_create(d1);
// go to that db's reference page
const store = await createTestStore();
store.pushPath(`/reference/databases/${id}`);
const app = mount(store.connectContainer(<DatabaseDetailContainer />));
await store.waitForActions([FETCH_DATABASE_METADATA, END_LOADING]);
// switch to edit view
const editButton = app.find(EditButton);
expect(editButton.text()).toBe("Edit");
click(editButton);
// update "caveats" and save
const textarea = app
.find(Detail)
.at(2)
.find("textarea");
setInputValue(textarea, "v important thing");
clickButton(
app
.find(EditHeader)
.find("button")
.at(1),
);
await store.waitForActions(END_LOADING);
// check that the field was updated
const savedText = app
.find(Detail)
.at(2)
.find("span")
.at(1)
.text();
expect(savedText).toBe("v important thing");
// clean up
await MetabaseApi.db_delete({ dbId: id });
});
// table list
it("should see the 4 tables in the sample database", async () => {
const store = await createTestStore();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment