Skip to content

Commit 9d885be

Browse files
Merge pull request #60 from SaidShah/add-tests-for-molecules-form
Added test for forms
2 parents 6d56e16 + 150e35b commit 9d885be

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

src/molecules/forms/form.test.tsx

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from "react";
2-
import { render } from "@testing-library/react";
2+
import { render, fireEvent, wait, getByText } from "@testing-library/react";
33
import { Form } from "./form";
44
import faker from "faker";
55

@@ -16,4 +16,40 @@ describe("Form", () => {
1616
// Assert
1717
expect(getByText(expected)).not.toBeNull();
1818
});
19+
20+
test("when onSubmit set, calls handler upon submit", async () => {
21+
// Arrange
22+
let calledTimes = 0;
23+
const buttonText = faker.random.word();
24+
const handleClick = () => {
25+
calledTimes++;
26+
};
27+
28+
// Act
29+
const { container } = render(
30+
<Form onSubmit={handleClick}>
31+
<button>{buttonText}</button>
32+
</Form>
33+
);
34+
fireEvent.submit(getByText(container, buttonText));
35+
36+
// Assert
37+
await wait(() => {
38+
expect(calledTimes).toEqual(1);
39+
});
40+
});
41+
42+
test("when given prop cssClassName, renders with class name", () => {
43+
// Arrange
44+
const testClassName = "testClassName";
45+
46+
// Act
47+
const { container } = render(
48+
<Form onSubmit={() => {}} cssClassName={testClassName} />
49+
);
50+
const result = container.querySelector("." + testClassName);
51+
52+
// Assert
53+
expect(result).not.toBeNil();
54+
});
1955
});

0 commit comments

Comments
 (0)