From 41b498fb6928b4fa070a7e7dc8b957c0ffb65590 Mon Sep 17 00:00:00 2001 From: Chris Chudzicki Date: Mon, 6 Oct 2025 16:29:26 -0400 Subject: [PATCH 1/4] rename attach/[code] url to enrollmentcode/[code] --- frontends/main/next.config.js | 9 +++++++++ .../EnrollmentCodePage.test.tsx} | 10 +++++----- .../EnrollmentCodePage.tsx} | 6 +++--- .../src/app/{attach => enrollmentcode}/[code]/page.tsx | 8 +++++--- 4 files changed, 22 insertions(+), 11 deletions(-) rename frontends/main/src/app-pages/{B2BAttachPage/B2BAttachPage.test.tsx => EnrollmentCodePage/EnrollmentCodePage.test.tsx} (90%) rename frontends/main/src/app-pages/{B2BAttachPage/B2BAttachPage.tsx => EnrollmentCodePage/EnrollmentCodePage.tsx} (93%) rename frontends/main/src/app/{attach => enrollmentcode}/[code]/page.tsx (60%) diff --git a/frontends/main/next.config.js b/frontends/main/next.config.js index 29bb4dff7a..d576a314a4 100644 --- a/frontends/main/next.config.js +++ b/frontends/main/next.config.js @@ -38,6 +38,15 @@ const nextConfig = { }, ] }, + async redirects() { + return [ + { + source: "/attach/:code", + destination: "/enrollmentcode/:code", + statusCode: 301, + }, + ] + }, async headers() { return [ diff --git a/frontends/main/src/app-pages/B2BAttachPage/B2BAttachPage.test.tsx b/frontends/main/src/app-pages/EnrollmentCodePage/EnrollmentCodePage.test.tsx similarity index 90% rename from frontends/main/src/app-pages/B2BAttachPage/B2BAttachPage.test.tsx rename to frontends/main/src/app-pages/EnrollmentCodePage/EnrollmentCodePage.test.tsx index 6732bb8e20..a81d6d7757 100644 --- a/frontends/main/src/app-pages/B2BAttachPage/B2BAttachPage.test.tsx +++ b/frontends/main/src/app-pages/EnrollmentCodePage/EnrollmentCodePage.test.tsx @@ -8,7 +8,7 @@ import { } from "api/mitxonline-test-utils" import * as commonUrls from "@/common/urls" import { Permission } from "api/hooks/user" -import B2BAttachPage from "./B2BAttachPage" +import EnrollmentCodePage from "./EnrollmentCodePage" import invariant from "tiny-invariant" // Mock next-nprogress-bar for App Router @@ -19,7 +19,7 @@ jest.mock("next-nprogress-bar", () => ({ }), })) -describe("B2BAttachPage", () => { +describe("EnrollmentCodePage", () => { beforeEach(() => { jest.clearAllMocks() mockPush.mockClear() @@ -33,7 +33,7 @@ describe("B2BAttachPage", () => { setMockResponse.get(mitxOnlineUrls.userMe.get(), null) setMockResponse.post(b2bUrls.b2bAttach.b2bAttachView("test-code"), []) - renderWithProviders(, { + renderWithProviders(, { url: commonUrls.B2B_ATTACH_VIEW, }) @@ -64,7 +64,7 @@ describe("B2BAttachPage", () => { setMockResponse.post(b2bUrls.b2bAttach.b2bAttachView("test-code"), []) - renderWithProviders(, { + renderWithProviders(, { url: commonUrls.B2B_ATTACH_VIEW, }) }) @@ -92,7 +92,7 @@ describe("B2BAttachPage", () => { setMockResponse.post(b2bUrls.b2bAttach.b2bAttachView("test-code"), []) - renderWithProviders(, { + renderWithProviders(, { url: commonUrls.B2B_ATTACH_VIEW, }) diff --git a/frontends/main/src/app-pages/B2BAttachPage/B2BAttachPage.tsx b/frontends/main/src/app-pages/EnrollmentCodePage/EnrollmentCodePage.tsx similarity index 93% rename from frontends/main/src/app-pages/B2BAttachPage/B2BAttachPage.tsx rename to frontends/main/src/app-pages/EnrollmentCodePage/EnrollmentCodePage.tsx index 54d7339e2c..2f95b44ff7 100644 --- a/frontends/main/src/app-pages/B2BAttachPage/B2BAttachPage.tsx +++ b/frontends/main/src/app-pages/EnrollmentCodePage/EnrollmentCodePage.tsx @@ -8,7 +8,7 @@ import { userQueries } from "api/hooks/user" import { useQuery } from "@tanstack/react-query" import { useRouter } from "next-nprogress-bar" -type B2BAttachPageProps = { +type EnrollmentCodePage = { code: string } @@ -17,7 +17,7 @@ const InterstitialMessage = styled(Typography)(({ theme }) => ({ textAlign: "center", })) -const B2BAttachPage: React.FC = ({ code }) => { +const EnrollmentCodePage: React.FC = ({ code }) => { const { mutate: attach, isSuccess, @@ -79,4 +79,4 @@ const B2BAttachPage: React.FC = ({ code }) => { ) } -export default B2BAttachPage +export default EnrollmentCodePage diff --git a/frontends/main/src/app/attach/[code]/page.tsx b/frontends/main/src/app/enrollmentcode/[code]/page.tsx similarity index 60% rename from frontends/main/src/app/attach/[code]/page.tsx rename to frontends/main/src/app/enrollmentcode/[code]/page.tsx index 023194dc92..175b606fc6 100644 --- a/frontends/main/src/app/attach/[code]/page.tsx +++ b/frontends/main/src/app/enrollmentcode/[code]/page.tsx @@ -2,16 +2,18 @@ import React from "react" import { Metadata } from "next" import { standardizeMetadata } from "@/common/metadata" import invariant from "tiny-invariant" -import B2BAttachPage from "@/app-pages/B2BAttachPage/B2BAttachPage" +import EnrollmentCodePage from "@/app-pages/EnrollmentCodePage/EnrollmentCodePage" export const metadata: Metadata = standardizeMetadata({ title: "Use Enrollment Code", }) -const Page: React.FC> = async ({ params }) => { +const Page: React.FC> = async ({ + params, +}) => { const resolved = await params invariant(resolved?.code, "code is required") - return + return } export default Page From 7ce5c6fbdbb0be65012b98f7d4a9a18d1e127a11 Mon Sep 17 00:00:00 2001 From: Chris Chudzicki Date: Mon, 6 Oct 2025 16:52:09 -0400 Subject: [PATCH 2/4] comment, fix a url --- frontends/main/next.config.js | 1 + frontends/main/src/common/urls.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/frontends/main/next.config.js b/frontends/main/next.config.js index d576a314a4..115248e441 100644 --- a/frontends/main/next.config.js +++ b/frontends/main/next.config.js @@ -41,6 +41,7 @@ const nextConfig = { async redirects() { return [ { + // can be removed once fastly redirect is in place source: "/attach/:code", destination: "/enrollmentcode/:code", statusCode: 301, diff --git a/frontends/main/src/common/urls.ts b/frontends/main/src/common/urls.ts index dbe08c8832..c74d2c693b 100644 --- a/frontends/main/src/common/urls.ts +++ b/frontends/main/src/common/urls.ts @@ -189,7 +189,7 @@ export const auth = (opts: LoginUrlOpts) => { export const ECOMMERCE_CART = "/cart/" as const -export const B2B_ATTACH_VIEW = "/attach/[code]" +export const B2B_ATTACH_VIEW = "/enrollmentcode/[code]" export const b2bAttachView = (code: string) => generatePath(B2B_ATTACH_VIEW, { code: code }) From cde8d677c7c755eed99725ced79a57f1e0c0495f Mon Sep 17 00:00:00 2001 From: Chris Chudzicki Date: Tue, 7 Oct 2025 14:27:49 -0400 Subject: [PATCH 3/4] use 308 --- frontends/main/next.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontends/main/next.config.js b/frontends/main/next.config.js index 115248e441..d5a58caa55 100644 --- a/frontends/main/next.config.js +++ b/frontends/main/next.config.js @@ -44,7 +44,7 @@ const nextConfig = { // can be removed once fastly redirect is in place source: "/attach/:code", destination: "/enrollmentcode/:code", - statusCode: 301, + statusCode: 308, }, ] }, From d26cfcf6fa00edab409e839b9451b1007bcfd00e Mon Sep 17 00:00:00 2001 From: Chris Chudzicki Date: Tue, 7 Oct 2025 14:32:48 -0400 Subject: [PATCH 4/4] use permanent: true --- frontends/main/next.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontends/main/next.config.js b/frontends/main/next.config.js index d5a58caa55..5dce66095d 100644 --- a/frontends/main/next.config.js +++ b/frontends/main/next.config.js @@ -44,7 +44,7 @@ const nextConfig = { // can be removed once fastly redirect is in place source: "/attach/:code", destination: "/enrollmentcode/:code", - statusCode: 308, + permanent: true, }, ] },