Skip to content
Snippets Groups Projects
Commit dd8651f9 authored by Tom Robinson's avatar Tom Robinson
Browse files

Add getFormValues integration test helper

parent 7d661340
Branches
Tags
No related merge requests found
......@@ -95,7 +95,17 @@ function enhanceEnzymeWrapper(wrapper) {
return wrapper;
}
export function fillFormInputs(inputs, values) {
export async function getFormValues(wrapper) {
const values = {};
const inputs = await wrapper.async.find("input");
for (const input of inputs) {
values[input.props.name] = input.props.value;
}
return values;
}
export async function fillFormValues(wrapper, values) {
const inputs = await wrapper.async.find("input");
for (const input of inputs) {
const name = input.props.name;
if (name in values) {
......@@ -113,6 +123,6 @@ export function submitForm(wrapper) {
}
export async function fillAndSubmitForm(wrapper, values) {
fillFormInputs(await wrapper.async.find("input"), values);
await fillFormValues(wrapper, values);
submitForm(wrapper);
}
......@@ -3,7 +3,7 @@ import mock from "xhr-mock";
import {
mountWithStore,
fillAndSubmitForm,
delay,
getFormValues,
} from "__support__/integration_tests";
import EditUserModal from "metabase/admin/people/containers/EditUserModal";
......@@ -19,7 +19,7 @@ describe("EditUserModal", () => {
afterEach(() => mock.teardown());
it("should load the user", async () => {
expect.assertions(2);
expect.assertions(3);
mock.get("/api/user/42", (req, res) => res.json({ id: 42, ...MOCK_USER }));
mock.put("/api/user/42", (req, res) => {
......@@ -31,15 +31,15 @@ describe("EditUserModal", () => {
<EditUserModal params={{ userId: 42 }} />,
);
const inputs = await wrapper.async.find("input");
expect(inputs.map(i => i.props().value)).toEqual([
"Testy",
"McTestFace",
"test@metabase.com",
]);
expect(await getFormValues(wrapper)).toEqual(MOCK_USER);
await fillAndSubmitForm(wrapper, { first_name: "Bob" });
await store.waitForAction("metabase/entities/users/UPDATE");
expect(await getFormValues(wrapper)).toEqual({
...MOCK_USER,
first_name: "Bob",
});
});
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment