Skip to content

Commit d3a0de6

Browse files
committed
fix(repo): Handle framework query param in Next.js keyless test
Update the Next.js keyless integration test to verify that claim URLs include the framework=nextjs query parameter. This aligns with backend changes that add framework query params to claim URLs for dashboard analytics and proper routing. Changes: - Check for 'framework=nextjs' in sign_in_force_redirect_url - Check for 'framework=nextjs' in sign_up_force_redirect_url (both regular and prepare-account cases) - Use .includes() instead of .startsWith() for more flexible URL validation - Properly handle URL-encoded framework parameter in prepare-account flow Test coverage: ✅ Sign-in redirect URL contains framework=nextjs ✅ Sign-up redirect URL contains framework=nextjs (regular case) ✅ Sign-up redirect URL contains framework=nextjs (prepare-account case) ✅ All other claim URL parameters (token, dashboard URL) still validated
1 parent bca677e commit d3a0de6

1 file changed

Lines changed: 19 additions & 11 deletions

File tree

integration/tests/next-quickstart-keyless.test.ts

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -89,20 +89,28 @@ test.describe('Keyless mode @quickstart', () => {
8989
await newPage.waitForLoadState();
9090

9191
await newPage.waitForURL(url => {
92-
const urlToReturnTo = `${dashboardUrl}apps/claim?token=`;
93-
92+
const signInForceRedirectUrl = url.searchParams.get('sign_in_force_redirect_url');
9493
const signUpForceRedirectUrl = url.searchParams.get('sign_up_force_redirect_url');
9594

96-
const signUpForceRedirectUrlCheck =
97-
signUpForceRedirectUrl?.startsWith(urlToReturnTo) ||
98-
(signUpForceRedirectUrl?.startsWith(`${dashboardUrl}prepare-account`) &&
99-
signUpForceRedirectUrl?.includes(encodeURIComponent('apps/claim?token=')));
95+
const signInHasRequiredParams =
96+
signInForceRedirectUrl?.includes(`${dashboardUrl}apps/claim`) &&
97+
signInForceRedirectUrl?.includes('token=') &&
98+
signInForceRedirectUrl?.includes('framework=nextjs');
99+
100+
const signUpRegularCase =
101+
signUpForceRedirectUrl?.includes(`${dashboardUrl}apps/claim`) &&
102+
signUpForceRedirectUrl?.includes('token=') &&
103+
signUpForceRedirectUrl?.includes('framework=nextjs');
104+
105+
const signUpPrepareAccountCase =
106+
signUpForceRedirectUrl?.startsWith(`${dashboardUrl}prepare-account`) &&
107+
signUpForceRedirectUrl?.includes(encodeURIComponent('apps/claim')) &&
108+
signUpForceRedirectUrl?.includes(encodeURIComponent('token=')) &&
109+
signUpForceRedirectUrl?.includes(encodeURIComponent('framework=nextjs'));
110+
111+
const signUpHasRequiredParams = signUpRegularCase || signUpPrepareAccountCase;
100112

101-
return (
102-
url.pathname === '/apps/claim/sign-in' &&
103-
url.searchParams.get('sign_in_force_redirect_url')?.startsWith(urlToReturnTo) &&
104-
signUpForceRedirectUrlCheck
105-
);
113+
return url.pathname === '/apps/claim/sign-in' && signInHasRequiredParams && signUpHasRequiredParams;
106114
});
107115
});
108116

0 commit comments

Comments
 (0)