Files
cal.diy/apps/web/app/e2e/session-warmup/page.tsx
T
e0fd01e377 feat: add lightweight E2E session warmup page (#26451)
* feat: add lightweight E2E session warmup endpoint

- Add /api/__e2e__/session-warmup endpoint that triggers NextAuth session loading
- Update apiLogin fixture to use the new endpoint instead of navigating to /settings/my-account/profile
- The endpoint is gated by NEXT_PUBLIC_IS_E2E=1 (already set in playwright.config.ts)
- This reduces overhead in E2E tests by avoiding loading a full UI page just to warm up the session

Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>

* refactor: move session warmup endpoint to App Router

- Move /api/__e2e__/session-warmup from pages/api to app/api
- Use App Router patterns (NextResponse, buildLegacyRequest)
- Maintains same functionality for E2E session warming

Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>

* rename path

* refactor: switch from API route to minimal SSR page (Option 2)

- Replace /api/e2e/session-warmup API route with /e2e/session-warmup page
- Use App Router page pattern with getServerSession for session warmup
- Update apiLogin fixture to navigate to the page instead of API request

Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>

* revert users fixture but with a new url

* render nothing on success

* clean up

* trying something

* Revert "trying something"

This reverts commit 2ae2f7dcb42612e54eb072a9f09857272020889a.

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2026-01-05 16:22:52 +00:00

26 lines
643 B
TypeScript

import process from "node:process";
import { notFound } from "next/navigation";
/**
* E2E-only page for warming up the NextAuth session.
* This triggers the jwt and session callbacks that populate the session
* with profile, org, and other important data.
*
* Only available when NEXT_PUBLIC_IS_E2E=1 is set (automatically set by playwright.config.ts)
* or in development mode.
*/
const Page = (): JSX.Element => {
// Gate this page to E2E test mode or dev only
if (
process.env.NEXT_PUBLIC_IS_E2E !== "1" &&
process.env.NODE_ENV !== "development"
) {
notFound();
}
return <div></div>;
};
export default Page;