Skip to content

Commit 89daf78

Browse files
committed
fix(repo): Handle backend-added framework query param in Next.js keyless test
The backend automatically adds framework=nextjs query parameter to claim URLs, which changes the URL structure from: apps/claim?token=abc to: apps/claim?framework=nextjs&token=abc This breaks the original test logic that used .startsWith() to check for 'apps/claim?token=' since the framework param comes first. Changes: - Use .includes() instead of .startsWith() for URL validation - Check that URL contains 'apps/claim' and 'token=' (in any order) - Don't explicitly validate framework parameter value - Handle both regular sign-up and prepare-account flows This allows the test to pass regardless of query parameter order, accommodating the backend's automatic framework parameter injection. Test coverage: ✅ Sign-in redirect URL contains apps/claim and token ✅ Sign-up redirect URL contains apps/claim and token (regular case) ✅ Sign-up redirect URL contains apps/claim and token (prepare-account case) ✅ Backend-added framework parameter doesn't break validation
1 parent 42de79d commit 89daf78

1 file changed

Lines changed: 4 additions & 8 deletions

File tree

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

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -92,21 +92,17 @@ test.describe('Keyless mode @quickstart', () => {
9292
const signInForceRedirectUrl = url.searchParams.get('sign_in_force_redirect_url');
9393
const signUpForceRedirectUrl = url.searchParams.get('sign_up_force_redirect_url');
9494

95+
// Backend adds framework=nextjs query param before token, so use .includes() instead of .startsWith()
9596
const signInHasRequiredParams =
96-
signInForceRedirectUrl?.includes(`${dashboardUrl}apps/claim`) &&
97-
signInForceRedirectUrl?.includes('token=') &&
98-
signInForceRedirectUrl?.includes('framework=nextjs');
97+
signInForceRedirectUrl?.includes(`${dashboardUrl}apps/claim`) && signInForceRedirectUrl?.includes('token=');
9998

10099
const signUpRegularCase =
101-
signUpForceRedirectUrl?.includes(`${dashboardUrl}apps/claim`) &&
102-
signUpForceRedirectUrl?.includes('token=') &&
103-
signUpForceRedirectUrl?.includes('framework=nextjs');
100+
signUpForceRedirectUrl?.includes(`${dashboardUrl}apps/claim`) && signUpForceRedirectUrl?.includes('token=');
104101

105102
const signUpPrepareAccountCase =
106103
signUpForceRedirectUrl?.startsWith(`${dashboardUrl}prepare-account`) &&
107104
signUpForceRedirectUrl?.includes(encodeURIComponent('apps/claim')) &&
108-
signUpForceRedirectUrl?.includes(encodeURIComponent('token=')) &&
109-
signUpForceRedirectUrl?.includes(encodeURIComponent('framework=nextjs'));
105+
signUpForceRedirectUrl?.includes(encodeURIComponent('token='));
110106

111107
const signUpHasRequiredParams = signUpRegularCase || signUpPrepareAccountCase;
112108

0 commit comments

Comments
 (0)