diff --git a/src/app/subscription/return/__tests__/page.test.tsx b/src/app/subscription/return/__tests__/page.test.tsx new file mode 100644 index 00000000..f213194a --- /dev/null +++ b/src/app/subscription/return/__tests__/page.test.tsx @@ -0,0 +1,14 @@ +import { renderToStaticMarkup } from "react-dom/server"; +import { describe, expect, it, vi } from "vitest"; + +vi.mock("next/navigation", () => ({ + useRouter: () => ({ replace: vi.fn() }), +})); + +import SubscriptionReturnPage from "../page"; + +describe("SubscriptionReturnPage", () => { + it("renders outside CharacterProvider", () => { + expect(() => renderToStaticMarkup()).not.toThrow(); + }); +}); diff --git a/src/app/subscription/return/page.tsx b/src/app/subscription/return/page.tsx index 5e94eed8..a204ac0a 100644 --- a/src/app/subscription/return/page.tsx +++ b/src/app/subscription/return/page.tsx @@ -1,6 +1,7 @@ "use client"; import { useEffect, useState } from "react"; +import { useRouter } from "next/navigation"; import { MobileShell } from "@/app/_components/core"; import { @@ -8,12 +9,11 @@ import { getPendingPaymentOrder, } from "@/lib/payment/pending_payment_order"; import { ROUTES } from "@/router/routes"; -import { useAppNavigator } from "@/router/use-app-navigator"; type ReturnStatus = "loading" | "missing"; export default function SubscriptionReturnPage() { - const navigator = useAppNavigator(); + const router = useRouter(); const [status, setStatus] = useState("loading"); useEffect(() => { @@ -24,7 +24,7 @@ export default function SubscriptionReturnPage() { if (cancelled) return; if (result.success && result.data !== null) { - navigator.replace(buildPendingPaymentSubscriptionUrl(result.data)); + router.replace(buildPendingPaymentSubscriptionUrl(result.data)); return; } @@ -35,7 +35,7 @@ export default function SubscriptionReturnPage() { return () => { cancelled = true; }; - }, [navigator]); + }, [router]); return ( @@ -62,7 +62,7 @@ export default function SubscriptionReturnPage() { {status === "missing" ? (