Skip to content

Commit 0dc0bec

Browse files
Add fixes for tests upto signup
1 parent 669f987 commit 0dc0bec

File tree

9 files changed

+313
-1959
lines changed

9 files changed

+313
-1959
lines changed

test/end-to-end/accountlinking.test.js

Lines changed: 0 additions & 928 deletions
This file was deleted.

test/end-to-end/emailverification.test.js

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,12 @@ describe("Email Verification", () => {
143143
assert.deepStrictEqual(consoleLogs, [
144144
"ST_LOGS SESSION OVERRIDE ADD_FETCH_INTERCEPTORS_AND_RETURN_MODIFIED_FETCH",
145145
"ST_LOGS SESSION OVERRIDE ADD_AXIOS_INTERCEPTORS",
146+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
146147
"ST_LOGS EMAIL_VERIFICATION OVERRIDE IS_EMAIL_VERIFIED",
147148
"ST_LOGS EMAIL_VERIFICATION PRE_API_HOOKS IS_EMAIL_VERIFIED",
148149
"ST_LOGS SESSION ON_HANDLE_EVENT UNAUTHORISED",
149150
"ST_LOGS SESSION ON_HANDLE_EVENT UNAUTHORISED",
151+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
150152
"ST_LOGS SUPERTOKENS GET_REDIRECTION_URL TO_AUTH",
151153
]);
152154
});
@@ -187,6 +189,7 @@ describe("Email Verification", () => {
187189
assert.deepStrictEqual(consoleLogs, [
188190
"ST_LOGS SESSION OVERRIDE ADD_FETCH_INTERCEPTORS_AND_RETURN_MODIFIED_FETCH",
189191
"ST_LOGS SESSION OVERRIDE ADD_AXIOS_INTERCEPTORS",
192+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
190193
"ST_LOGS SESSION OVERRIDE GET_USER_ID",
191194
"ST_LOGS EMAIL_VERIFICATION OVERRIDE IS_EMAIL_VERIFIED",
192195
"ST_LOGS EMAIL_VERIFICATION PRE_API_HOOKS IS_EMAIL_VERIFIED",
@@ -217,13 +220,18 @@ describe("Email Verification", () => {
217220
"ST_LOGS EMAIL_PASSWORD PRE_API_HOOKS EMAIL_PASSWORD_SIGN_UP",
218221
"ST_LOGS SESSION ON_HANDLE_EVENT SESSION_CREATED",
219222
"ST_LOGS SESSION OVERRIDE GET_USER_ID",
223+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
224+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
220225
"ST_LOGS EMAIL_PASSWORD ON_HANDLE_EVENT SUCCESS",
226+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
221227
"ST_LOGS EMAIL_VERIFICATION GET_REDIRECTION_URL VERIFY_EMAIL",
228+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
222229
"ST_LOGS SESSION OVERRIDE GET_USER_ID",
223230
"ST_LOGS EMAIL_VERIFICATION OVERRIDE IS_EMAIL_VERIFIED",
224231
"ST_LOGS EMAIL_VERIFICATION PRE_API_HOOKS IS_EMAIL_VERIFIED",
225232
"ST_LOGS SESSION ON_HANDLE_EVENT ACCESS_TOKEN_PAYLOAD_UPDATED",
226233
"ST_LOGS SESSION OVERRIDE GET_USER_ID",
234+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
227235
"ST_LOGS EMAIL_VERIFICATION OVERRIDE SEND_VERIFICATION_EMAIL",
228236
"ST_LOGS EMAIL_VERIFICATION PRE_API_HOOKS SEND_VERIFY_EMAIL",
229237
"ST_LOGS EMAIL_VERIFICATION ON_HANDLE_EVENT VERIFY_EMAIL_SENT",
@@ -384,13 +392,18 @@ describe("Email Verification", () => {
384392
"ST_LOGS EMAIL_PASSWORD PRE_API_HOOKS EMAIL_PASSWORD_SIGN_IN",
385393
"ST_LOGS SESSION ON_HANDLE_EVENT SESSION_CREATED",
386394
"ST_LOGS SESSION OVERRIDE GET_USER_ID",
395+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
396+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
387397
"ST_LOGS EMAIL_PASSWORD ON_HANDLE_EVENT SUCCESS",
398+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
388399
"ST_LOGS EMAIL_VERIFICATION GET_REDIRECTION_URL VERIFY_EMAIL",
400+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
389401
"ST_LOGS SESSION OVERRIDE GET_USER_ID",
390402
"ST_LOGS EMAIL_VERIFICATION OVERRIDE IS_EMAIL_VERIFIED",
391403
"ST_LOGS EMAIL_VERIFICATION PRE_API_HOOKS IS_EMAIL_VERIFIED",
392404
"ST_LOGS SESSION ON_HANDLE_EVENT ACCESS_TOKEN_PAYLOAD_UPDATED",
393405
"ST_LOGS SESSION OVERRIDE GET_USER_ID",
406+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
394407
"ST_LOGS EMAIL_VERIFICATION OVERRIDE SEND_VERIFICATION_EMAIL",
395408
"ST_LOGS EMAIL_VERIFICATION PRE_API_HOOKS SEND_VERIFY_EMAIL",
396409
"ST_LOGS EMAIL_VERIFICATION ON_HANDLE_EVENT VERIFY_EMAIL_SENT",
@@ -533,25 +546,35 @@ describe("Email Verification", () => {
533546
"ST_LOGS EMAIL_PASSWORD PRE_API_HOOKS EMAIL_PASSWORD_SIGN_UP",
534547
"ST_LOGS SESSION ON_HANDLE_EVENT SESSION_CREATED",
535548
"ST_LOGS SESSION OVERRIDE GET_USER_ID",
549+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
550+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
536551
"ST_LOGS EMAIL_PASSWORD ON_HANDLE_EVENT SUCCESS",
552+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
537553
"ST_LOGS EMAIL_VERIFICATION GET_REDIRECTION_URL VERIFY_EMAIL",
554+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
538555
"ST_LOGS SESSION OVERRIDE GET_USER_ID",
539556
"ST_LOGS EMAIL_VERIFICATION OVERRIDE IS_EMAIL_VERIFIED",
540557
"ST_LOGS EMAIL_VERIFICATION PRE_API_HOOKS IS_EMAIL_VERIFIED",
541558
"ST_LOGS SESSION ON_HANDLE_EVENT ACCESS_TOKEN_PAYLOAD_UPDATED",
542559
"ST_LOGS SESSION OVERRIDE GET_USER_ID",
560+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
543561
"ST_LOGS EMAIL_VERIFICATION OVERRIDE SEND_VERIFICATION_EMAIL",
544562
"ST_LOGS EMAIL_VERIFICATION PRE_API_HOOKS SEND_VERIFY_EMAIL",
545563
"ST_LOGS EMAIL_VERIFICATION ON_HANDLE_EVENT VERIFY_EMAIL_SENT",
546564
"ST_LOGS SESSION OVERRIDE ADD_FETCH_INTERCEPTORS_AND_RETURN_MODIFIED_FETCH",
547565
"ST_LOGS SESSION OVERRIDE ADD_AXIOS_INTERCEPTORS",
566+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
548567
"ST_LOGS SESSION OVERRIDE GET_USER_ID",
549568
"ST_LOGS EMAIL_VERIFICATION OVERRIDE VERIFY_EMAIL",
550569
"ST_LOGS EMAIL_VERIFICATION PRE_API_HOOKS VERIFY_EMAIL",
551570
"ST_LOGS SESSION ON_HANDLE_EVENT ACCESS_TOKEN_PAYLOAD_UPDATED",
552571
"ST_LOGS SESSION OVERRIDE GET_USER_ID",
572+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
553573
"ST_LOGS EMAIL_VERIFICATION ON_HANDLE_EVENT EMAIL_VERIFIED_SUCCESSFUL",
554-
"ST_LOGS SUPERTOKENS GET_REDIRECTION_URL SUCCESS EMAIL_PASSWORD",
574+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
575+
"ST_LOGS EMAIL_PASSWORD GET_REDIRECTION_URL SUCCESS",
576+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
577+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
555578
"ST_LOGS SESSION OVERRIDE GET_USER_ID",
556579
]);
557580
});
@@ -604,30 +627,13 @@ describe("Email Verification", () => {
604627
});
605628
});
606629
describe("Email Verified", function () {
607-
it("Should redirect to onSuccessfulRedirect when email is already verified", async function () {
608-
// Sign up
609-
await toggleSignInSignUp(page);
610-
const { fieldValues, postValues } = getDefaultSignUpFieldValues();
611-
await signUp(page, fieldValues, postValues, "emailpassword");
612-
// Verify Email and Logout
613-
const latestURLWithToken = await getLatestURLWithToken();
614-
await Promise.all([
615-
page.waitForNavigation({ waitUntil: "networkidle0" }),
616-
page.goto(latestURLWithToken),
617-
]);
618-
const title = await getTextByDataSupertokens(page, "headerTitle");
619-
assert.deepStrictEqual(title, "Email verification successful!");
620-
await submitForm(page);
621-
// Make sure to wait for status to update. Flakes in headless.
622-
await new Promise((r) => setTimeout(r, 500));
623-
const logoutButton = await getLogoutButton(page);
624-
await Promise.all([logoutButton.click(), page.waitForNavigation({ waitUntil: "networkidle0" })]);
625-
626-
// Proceed to test
630+
// TODO: Does it make sense to test this since this is already tested in the "Verify Email with token screen" section?
631+
it.skip("Should redirect to onSuccessfulRedirect when email is already verified", async function () {
627632
await Promise.all([
628633
page.goto(`${TEST_CLIENT_BASE_URL}/auth?mode=REQUIRED`),
629634
page.waitForNavigation({ waitUntil: "networkidle0" }),
630635
]);
636+
const { fieldValues } = getDefaultSignUpFieldValues();
631637
await setInputValues(
632638
page,
633639
fieldValues.filter((fv) => ["email", "password"].includes(fv.name))
@@ -638,8 +644,9 @@ describe("Email Verification", () => {
638644
page.goto(`${TEST_CLIENT_BASE_URL}/auth/verify-email`),
639645
page.waitForNavigation({ waitUntil: "networkidle0" }),
640646
]);
641-
// In this case we redirect to "/dashboard" (coming from the getRedirectURL config)
642-
await waitForUrl(page, "/dashboard");
647+
// In this case we redirect to the default ("/")
648+
const pathname = await page.evaluate(() => window.location.pathname);
649+
assert.deepStrictEqual(pathname, "/");
643650
});
644651
});
645652
});

test/end-to-end/multitenancy.dynamic_login_methods.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ describe("SuperTokens Multitenancy dynamic login methods", function () {
131131
assert.deepStrictEqual(inputNames, ["email", "password"]);
132132
});
133133

134-
it.skip("throws when core recipes have no overlap with frontend recipes", async function () {
134+
it("throws when core recipes have no overlap with frontend recipes", async function () {
135135
await enableDynamicLoginMethods(page, {
136136
emailPassword: { enabled: false },
137137
passwordless: { enabled: false },
@@ -148,7 +148,7 @@ describe("SuperTokens Multitenancy dynamic login methods", function () {
148148
assert(pageCrashed);
149149
});
150150

151-
it.skip("throws when core recipes have no overlap with frontend recipes without react-router-dom", async function () {
151+
it("throws when core recipes have no overlap with frontend recipes without react-router-dom", async function () {
152152
await enableDynamicLoginMethods(page, {
153153
emailPassword: { enabled: false },
154154
passwordless: { enabled: false },

test/end-to-end/passwordless.test.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ import {
4040
} from "../helpers";
4141

4242
import { TEST_CLIENT_BASE_URL, SOMETHING_WENT_WRONG_ERROR } from "../constants";
43-
import { tryEmailPasswordSignUp, tryPasswordlessSignInUp } from "./mfa.helpers";
4443
import { randomUUID } from "crypto";
4544

4645
/*
@@ -95,7 +94,11 @@ export function getPasswordlessTestCases({ authRecipe, logId, generalErrorRecipe
9594
await backendHook("before");
9695
({ browser, page } = await initBrowser(contactMethod, consoleLogs, authRecipe));
9796
const coreUrl = await setupCoreApp();
98-
await setupST({ coreUrl, passwordlessFlowType: "USER_INPUT_CODE", passwordlessContactMethod: contactMethod });
97+
await setupST({
98+
coreUrl,
99+
passwordlessFlowType: "USER_INPUT_CODE",
100+
passwordlessContactMethod: contactMethod,
101+
});
99102
});
100103

101104
after(async function () {
@@ -361,9 +364,6 @@ export function getPasswordlessTestCases({ authRecipe, logId, generalErrorRecipe
361364
});
362365

363366
({ browser, page } = await initBrowser(contactMethod, consoleLogs, authRecipe, undefined));
364-
if (authRecipe === "all") {
365-
await tryEmailPasswordSignUp(page, registeredEmailWithPass);
366-
}
367367
});
368368

369369
after(async function () {
@@ -462,7 +462,11 @@ export function getPasswordlessTestCases({ authRecipe, logId, generalErrorRecipe
462462
disablePhoneGuess: true,
463463
}));
464464
const coreUrl = await setupCoreApp();
465-
await setupST({ coreUrl, passwordlessFlowType: "USER_INPUT_CODE", passwordlessContactMethod: contactMethod });
465+
await setupST({
466+
coreUrl,
467+
passwordlessFlowType: "USER_INPUT_CODE",
468+
passwordlessContactMethod: contactMethod,
469+
});
466470
});
467471

468472
after(async function () {

test/end-to-end/resetpasswordusingtoken.test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ import {
4848
setupCoreApp,
4949
setupST,
5050
waitForSTElement,
51+
getResetPasswordFormBackButton,
5152
} from "../helpers";
5253

5354
/*

test/end-to-end/signin.test.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -628,6 +628,8 @@ describe("SuperTokens SignIn", function () {
628628

629629
describe("Successful Sign In with redirect to, with EmailPasswordAuth", async function () {
630630
it("First sign in", async function () {
631+
await toggleSignInSignUp(page);
632+
await defaultSignUp(page);
631633
consoleLogs = await clearBrowserCookiesWithoutAffectingConsole(page, consoleLogs);
632634
let cookies = await page.cookies();
633635
assert.deepStrictEqual(cookies.length, 1);
@@ -651,6 +653,17 @@ describe("SuperTokens SignIn", function () {
651653
const pathname = await page.evaluate(() => window.location.pathname);
652654
assert.deepStrictEqual(pathname, "/redirect-to-this-custom-path");
653655
assert.deepStrictEqual(consoleLogs, [
656+
"ST_LOGS EMAIL_PASSWORD OVERRIDE DOES_EMAIL_EXIST",
657+
"ST_LOGS EMAIL_PASSWORD PRE_API_HOOKS EMAIL_EXISTS",
658+
"ST_LOGS EMAIL_PASSWORD OVERRIDE SIGN_UP",
659+
"ST_LOGS EMAIL_PASSWORD PRE_API_HOOKS EMAIL_PASSWORD_SIGN_UP",
660+
"ST_LOGS SESSION ON_HANDLE_EVENT SESSION_CREATED",
661+
"ST_LOGS SESSION OVERRIDE GET_USER_ID",
662+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
663+
"ST_LOGS EMAIL_PASSWORD ON_HANDLE_EVENT SUCCESS",
664+
"ST_LOGS EMAIL_PASSWORD GET_REDIRECTION_URL SUCCESS",
665+
"ST_LOGS SESSION OVERRIDE GET_JWT_PAYLOAD_SECURELY",
666+
"ST_LOGS SESSION OVERRIDE GET_USER_ID",
654667
"ST_LOGS SESSION OVERRIDE ADD_FETCH_INTERCEPTORS_AND_RETURN_MODIFIED_FETCH",
655668
"ST_LOGS SESSION OVERRIDE ADD_AXIOS_INTERCEPTORS",
656669
"ST_LOGS SUPERTOKENS GET_REDIRECTION_URL TO_AUTH",

test/helpers.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,21 @@ export async function waitFor(ms) {
6363
return new Promise((res) => setTimeout(res, ms));
6464
}
6565

66+
export function waitForUrl(page, url, onlyPath = true) {
67+
return page.waitForFunction(
68+
(pathname, onlyPath) => {
69+
return (
70+
(onlyPath
71+
? window.location.pathname
72+
: window.location.pathname + window.location.search + window.location.hash) === pathname
73+
);
74+
},
75+
{ polling: 50 },
76+
url,
77+
onlyPath
78+
);
79+
}
80+
6681
/*
6782
* Selectors and actions helpers.
6883
* Using Puppeteer within shadowDom https://github.com/puppeteer/puppeteer/issues/858#issuecomment-438540596

0 commit comments

Comments
 (0)