From abaeade6477d2647ee1f6d81bed838a167dad998 Mon Sep 17 00:00:00 2001 From: Said Shah Date: Tue, 27 Oct 2020 11:10:38 -0400 Subject: [PATCH 1/3] Added test for forms --- src/molecules/forms/form.test.tsx | 38 ++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/molecules/forms/form.test.tsx b/src/molecules/forms/form.test.tsx index 7826cb5..43fad24 100644 --- a/src/molecules/forms/form.test.tsx +++ b/src/molecules/forms/form.test.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { render } from "@testing-library/react"; +import { render, fireEvent, wait, getByText } from "@testing-library/react"; import { Form } from "./form"; import faker from "faker"; @@ -16,4 +16,40 @@ describe("Form", () => { // Assert expect(getByText(expected)).not.toBeNull(); }); + + test("when onSubmit set, calls handler upon submit", async () => { + // Arrange + let calledTimes = 0; + const buttonText = faker.random.word(); + const handleClick = () => { + calledTimes++; + }; + + // Act + const { container } = render( +
+ +
+ ); + fireEvent.submit(getByText(container, buttonText)); + + // Assert + await wait(() => { + expect(calledTimes).toEqual(1); + }); + }); + + test("when given prop cssClassName, renders with class name", () => { + // Arrange + const randomClassName = faker.random.word(); + + // Act + const { container } = render( +
{}} cssClassName={randomClassName} /> + ); + const result = container.querySelector("." + randomClassName); + + // Assert + expect(result).not.toBeNil(); + }); }); From 98b66d96a994c5b7d6067df66afd494e91f25c99 Mon Sep 17 00:00:00 2001 From: Said Shah Date: Tue, 27 Oct 2020 13:01:47 -0400 Subject: [PATCH 2/3] formatting --- src/molecules/forms/form.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/molecules/forms/form.test.tsx b/src/molecules/forms/form.test.tsx index 43fad24..ef84489 100644 --- a/src/molecules/forms/form.test.tsx +++ b/src/molecules/forms/form.test.tsx @@ -41,7 +41,7 @@ describe("Form", () => { test("when given prop cssClassName, renders with class name", () => { // Arrange - const randomClassName = faker.random.word(); + const randomClassName = faker.random.word().replace(/ /, ""); // Act const { container } = render( From 150e35b619d858a33a4e76dce4dd5c8051eb2b08 Mon Sep 17 00:00:00 2001 From: Said Shah Date: Tue, 27 Oct 2020 15:16:05 -0400 Subject: [PATCH 3/3] Updated text for css class name test --- src/molecules/forms/form.test.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/molecules/forms/form.test.tsx b/src/molecules/forms/form.test.tsx index ef84489..24af21d 100644 --- a/src/molecules/forms/form.test.tsx +++ b/src/molecules/forms/form.test.tsx @@ -41,13 +41,13 @@ describe("Form", () => { test("when given prop cssClassName, renders with class name", () => { // Arrange - const randomClassName = faker.random.word().replace(/ /, ""); + const testClassName = "testClassName"; // Act const { container } = render( - {}} cssClassName={randomClassName} /> + {}} cssClassName={testClassName} /> ); - const result = container.querySelector("." + randomClassName); + const result = container.querySelector("." + testClassName); // Assert expect(result).not.toBeNil();