import { fireEvent, render, screen } from "@testing-library/react"; import { InputText } from "./InputText"; import { Usage } from "./InputText.stories"; describe("input-text", () => { it("should display the input-text component", () => { render(); const input = screen.getByTestId("input_test") as HTMLInputElement; expect(input).toBeInTheDocument(); }); it("should display the input-text component with a different size", () => { render(); const input = screen.getByTestId("input_test") as HTMLInputElement; expect(input).toBeInTheDocument(); expect(screen.getByTestId("form-group-test")).toHaveClass("-size-small"); }); it("should display the input-text with placeholder", () => { const placeholderTest = "placeholder test"; render(); const input = screen.getByTestId("input_test") as HTMLInputElement; expect(input).toBeInTheDocument(); expect(input).toHaveAttribute("placeholder", placeholderTest); }); it("should change the value of the input-text", () => { const placeholderTest = "placeholder test"; render(); const input = screen.getByTestId("input_test") as HTMLInputElement; expect(input).toBeInTheDocument(); fireEvent.change(input, { target: { value: "newValue" } }); expect(input.value).toBe("newValue"); expect(input).not.toHaveDisplayValue(placeholderTest); expect(input).toHaveDisplayValue("newValue"); }); it("should NOT change the value of the input-text if the value is NOT of type number", () => { const placeholderTest = "placeholder test"; render(); const input = screen.getByTestId("input_test") as HTMLInputElement; expect(input).toBeInTheDocument(); fireEvent.change(input, { target: { value: "newValue" } }); expect(input).not.toHaveDisplayValue("newValue"); fireEvent.change(input, { target: { value: 1234 } }); expect(input.value).toBe("1234"); expect(input).toHaveDisplayValue("1234"); }); });