diff --git a/frontend/__tests__/components/features/onboarding/information-request-form.test.tsx b/frontend/__tests__/components/features/onboarding/information-request-form.test.tsx
index 403696ab5b..935cb409ab 100644
--- a/frontend/__tests__/components/features/onboarding/information-request-form.test.tsx
+++ b/frontend/__tests__/components/features/onboarding/information-request-form.test.tsx
@@ -1,18 +1,11 @@
import { render, screen } from "@testing-library/react";
import userEvent from "@testing-library/user-event";
import { describe, expect, it, vi, beforeEach } from "vitest";
-import { MemoryRouter } from "react-router";
-import { InformationRequestForm, RequestType } from "#/components/features/onboarding/information-request-form";
-
-// Mock useNavigate
-const mockNavigate = vi.fn();
-vi.mock("react-router", async () => {
- const actual = await vi.importActual("react-router");
- return {
- ...actual,
- useNavigate: () => mockNavigate,
- };
-});
+import { createRoutesStub } from "react-router";
+import {
+ InformationRequestForm,
+ RequestType,
+} from "#/components/features/onboarding/information-request-form";
// Mock useTracking
const mockTrackEnterpriseLeadFormSubmitted = vi.fn();
@@ -33,11 +26,18 @@ describe("InformationRequestForm", () => {
});
const renderWithRouter = (props = defaultProps) => {
- return render(
-
-
- ,
- );
+ const Stub = createRoutesStub([
+ {
+ path: "/",
+ Component: () => ,
+ },
+ {
+ path: "/login",
+ Component: () =>
,
+ },
+ ]);
+
+ return render();
};
it("should render the form", () => {
@@ -192,10 +192,14 @@ describe("InformationRequestForm", () => {
const user = userEvent.setup();
renderWithRouter();
- const submitButton = screen.getByRole("button", { name: "ENTERPRISE$FORM_SUBMIT" });
+ const submitButton = screen.getByRole("button", {
+ name: "ENTERPRISE$FORM_SUBMIT",
+ });
await user.click(submitButton);
- expect(mockNavigate).not.toHaveBeenCalled();
+ // Should stay on form page, not navigate to login
+ expect(screen.getByTestId("information-request-form")).toBeInTheDocument();
+ expect(screen.queryByTestId("login-page")).not.toBeInTheDocument();
});
it("should not call tracking when form is submitted with empty fields", async () => {
@@ -208,7 +212,7 @@ describe("InformationRequestForm", () => {
expect(mockTrackEnterpriseLeadFormSubmitted).not.toHaveBeenCalled();
});
- it("should navigate to login page with modal state when form is submitted with all fields filled", async () => {
+ it("should navigate to login page when form is submitted with all fields filled", async () => {
const user = userEvent.setup();
renderWithRouter();
@@ -217,12 +221,13 @@ describe("InformationRequestForm", () => {
await user.type(screen.getByTestId("form-input-email"), "john@example.com");
await user.type(screen.getByTestId("form-input-message"), "Hello world");
- const submitButton = screen.getByRole("button", { name: "ENTERPRISE$FORM_SUBMIT" });
+ const submitButton = screen.getByRole("button", {
+ name: "ENTERPRISE$FORM_SUBMIT",
+ });
await user.click(submitButton);
- expect(mockNavigate).toHaveBeenCalledWith("/login", {
- state: { showRequestSubmittedModal: true },
- });
+ // Should navigate to login page
+ expect(screen.getByTestId("login-page")).toBeInTheDocument();
});
it("should call tracking with form data when form is submitted successfully", async () => {
@@ -314,46 +319,14 @@ describe("InformationRequestForm", () => {
});
await user.click(submitButton);
- expect(mockNavigate).not.toHaveBeenCalled();
+ // Should stay on form page, not navigate to login
+ expect(screen.getByTestId("information-request-form")).toBeInTheDocument();
+ expect(screen.queryByTestId("login-page")).not.toBeInTheDocument();
expect(mockTrackEnterpriseLeadFormSubmitted).not.toHaveBeenCalled();
});
});
describe("loading state", () => {
- it("should disable submit button after submission", async () => {
- const user = userEvent.setup();
- renderWithRouter();
-
- await user.type(screen.getByTestId("form-input-name"), "John Doe");
- await user.type(screen.getByTestId("form-input-company"), "Acme Inc");
- await user.type(screen.getByTestId("form-input-email"), "john@example.com");
- await user.type(screen.getByTestId("form-input-message"), "Hello world");
-
- const submitButton = screen.getByRole("button", {
- name: "ENTERPRISE$FORM_SUBMIT",
- });
- await user.click(submitButton);
-
- expect(submitButton).toBeDisabled();
- });
-
- it("should show submitting text after submission", async () => {
- const user = userEvent.setup();
- renderWithRouter();
-
- await user.type(screen.getByTestId("form-input-name"), "John Doe");
- await user.type(screen.getByTestId("form-input-company"), "Acme Inc");
- await user.type(screen.getByTestId("form-input-email"), "john@example.com");
- await user.type(screen.getByTestId("form-input-message"), "Hello world");
-
- const submitButton = screen.getByRole("button", {
- name: "ENTERPRISE$FORM_SUBMIT",
- });
- await user.click(submitButton);
-
- expect(screen.getByText("ENTERPRISE$FORM_SUBMITTING")).toBeInTheDocument();
- });
-
it("should prevent double submission", async () => {
const user = userEvent.setup();
renderWithRouter();
@@ -374,7 +347,8 @@ describe("InformationRequestForm", () => {
// Should only track once
expect(mockTrackEnterpriseLeadFormSubmitted).toHaveBeenCalledTimes(1);
- expect(mockNavigate).toHaveBeenCalledTimes(1);
+ // Should navigate to login page
+ expect(screen.getByTestId("login-page")).toBeInTheDocument();
});
});
});