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" ? (