Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 1 addition & 9 deletions test/end-to-end/generalerror.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ let consoleLogs;

describe("General error rendering", function () {
let coreUrl;
let enabledRecipes = undefined;
before(async function () {
const _isGeneralErrorSupported = await isGeneralErrorSupported();
if (!_isGeneralErrorSupported) {
Expand All @@ -77,7 +76,7 @@ describe("General error rendering", function () {
beforeEach(async function () {
await backendHook("beforeEach");
coreUrl = await setupCoreApp();
await setupST({ coreUrl, enabledRecipes });
await setupST({ coreUrl });
page = await browser.newPage();

consoleLogs = [];
Expand Down Expand Up @@ -210,18 +209,11 @@ describe("General error rendering", function () {
});

describe("ThirdPartyEmailPassword", function () {
before(async function () {
enabledRecipes = ["thirdpartyemailpassword", "session"];
});

getEmailPasswordTests("thirdpartyemailpassword", "THIRD_PARTY_EMAIL_PASSWORD");
getThirdPartyTests("thirdpartyemailpassword", "THIRD_PARTY_EMAIL_PASSWORD");
});

describe("ThirdPartyPasswordless", function () {
before(async function () {
enabledRecipes = ["thirdpartypasswordless", "session"];
});
getThirdPartyTests("thirdpartypasswordless", "THIRD_PARTY_PASSWORDLESS");
});

Expand Down
14 changes: 13 additions & 1 deletion test/end-to-end/getRedirectionURL.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import { TEST_CLIENT_BASE_URL, SIGN_IN_UP_API } from "../constants";

describe("getRedirectionURL Tests", function () {
let browser;
let page;

before(async function () {
await backendHook("before");
Expand All @@ -46,6 +45,8 @@ describe("getRedirectionURL Tests", function () {

describe("Test that isNewRecipeUser is passed correctly", function () {
describe("Email Password Recipe", function () {
let page;

beforeEach(async function () {
page = await browser.newPage();
const coreUrl = await setupCoreApp();
Expand All @@ -72,6 +73,8 @@ describe("getRedirectionURL Tests", function () {
});

describe("Third party recipe", function () {
let page;

before(async function () {
const coreUrl = await setupCoreApp();
await setupST({ coreUrl });
Expand Down Expand Up @@ -105,6 +108,8 @@ describe("getRedirectionURL Tests", function () {
});

describe("Thirdpartyemailpassword recipe", function () {
let page;

before(async function () {
const coreUrl = await setupCoreApp();
await setupST({ coreUrl });
Expand Down Expand Up @@ -145,6 +150,7 @@ describe("getRedirectionURL Tests", function () {

describe("Passwordless recipe", function () {
const exampleEmail = "[email protected]";
let page;

before(async function () {
let _isPasswordlessSupported = await isPasswordlessSupported();
Expand Down Expand Up @@ -207,6 +213,7 @@ describe("getRedirectionURL Tests", function () {

describe("ThirdPartyPasswordless recipe", function () {
const exampleEmail = "[email protected]";
let page;

before(async function () {
let _isThirdPartyPasswordlessSupported = await isThirdPartyPasswordlessSupported();
Expand Down Expand Up @@ -283,6 +290,8 @@ describe("getRedirectionURL Tests", function () {

describe("No Redirection", function () {
describe("Email Password Recipe", function () {
let page;

before(async function () {
const coreUrl = await setupCoreApp();
await setupST({ coreUrl });
Expand Down Expand Up @@ -320,6 +329,7 @@ describe("getRedirectionURL Tests", function () {

describe("Passwordless recipe", function () {
const exampleEmail = "[email protected]";
let page;

before(async function () {
let _isPasswordlessSupported = await isPasswordlessSupported();
Expand Down Expand Up @@ -387,6 +397,7 @@ describe("getRedirectionURL Tests", function () {

describe("ThirdPartyPasswordless recipe: Magic Link", function () {
const exampleEmail = "[email protected]";
let page;

before(async function () {
let _isThirdPartyPasswordlessSupported = await isThirdPartyPasswordlessSupported();
Expand Down Expand Up @@ -453,6 +464,7 @@ describe("getRedirectionURL Tests", function () {
});

describe("ThirdParty Recipe", function () {
let page;
before(async function () {
const coreUrl = await setupCoreApp();
await setupST({ coreUrl });
Expand Down
2 changes: 1 addition & 1 deletion test/end-to-end/mfa.chooserscreen.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ describe("SuperTokens SignIn w/ MFA", function () {
await chooseFactor(page, "otp-phone");
await completeOTP(page);

await goToFactorChooser(page);
await goToFactorChooser(page, true, false);

await waitForSTElement(page, "[data-supertokens~=backButton]");
});
Expand Down
12 changes: 9 additions & 3 deletions test/end-to-end/mfa.helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -191,10 +191,16 @@ export async function tryPasswordlessSignInUp(page, contactInfo, queryParams) {
await submitForm(page);
await new Promise((res) => setTimeout(res, 1000));
}
export async function goToFactorChooser(page, waitForList = true) {
export async function goToFactorChooser(page, waitForList = true, waitForNetworkIdle = true) {
const ele = await page.waitForSelector(".goToFactorChooser");
await waitFor(100);
await Promise.all([page.waitForNavigation({ waitUntil: "networkidle0" }), ele.click()]);
await waitFor(waitForNetworkIdle ? 100 : 1000);
const steps = [ele.click()];
if (waitForNetworkIdle) {
// Insert at the start of the array
steps.unshift(page.waitForNavigation({ waitUntil: "networkidle0" }));
}

await Promise.all(steps);
if (waitForList) {
await waitForSTElement(page, "[data-supertokens~=factorChooserList]");
}
Expand Down
2 changes: 1 addition & 1 deletion test/end-to-end/mfa.requirement_handling.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ describe("SuperTokens SignIn w/ MFA", function () {

await tryEmailPasswordSignUp(page, email);
await waitForDashboard(page);
await goToFactorChooser(page);
await goToFactorChooser(page, true, false);
await chooseFactor(page, "otp-email");
await completeOTP(page);
await setupOTP(page, "PHONE", phoneNumber);
Expand Down
14 changes: 7 additions & 7 deletions test/end-to-end/mfa.signin.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ describe("SuperTokens SignIn w/ MFA", function () {
it("sign in with email-otp (auto-setup)", async function () {
const email = await getTestEmail();

setupST({
await setupST({
...appConfig,
mfaInfo: {
requirements: ["otp-email"],
Expand All @@ -139,7 +139,7 @@ describe("SuperTokens SignIn w/ MFA", function () {
const email = await getTestEmail();
const phoneNumber = getTestPhoneNumber();

setupST({
await setupST({
...appConfig,
mfaInfo: {
requirements: [{ oneOf: ["otp-email", "otp-phone"] }],
Expand All @@ -163,7 +163,7 @@ describe("SuperTokens SignIn w/ MFA", function () {
});

it("set up otp-email and sign-in", async function () {
setupST({
await setupST({
...appConfig,
mfaInfo: {
requirements: [],
Expand All @@ -179,7 +179,7 @@ describe("SuperTokens SignIn w/ MFA", function () {

await logout(page);

setupST({
await setupST({
...appConfig,
mfaInfo: {
requirements: [{ oneOf: ["otp-email"] }],
Expand All @@ -203,15 +203,15 @@ describe("SuperTokens SignIn w/ MFA", function () {
});

it("set up totp and sign-in", async function () {
setupST({
await setupST({
...appConfig,
mfaInfo: {
requirements: [],
},
});
const email = await getTestEmail();

setupST({
await setupST({
...appConfig,
mfaInfo: {
requirements: [{ oneOf: ["otp-email", "totp"] }],
Expand Down Expand Up @@ -245,7 +245,7 @@ describe("SuperTokens SignIn w/ MFA", function () {

it("should show access denied if the only next option is an unknown factor id", async () => {
const email = await getTestEmail();
setupST({
await setupST({
...appConfig,
mfaInfo: {
requirements: ["unknown"],
Expand Down
5 changes: 5 additions & 0 deletions test/end-to-end/multitenancy.tenant_interactions.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -647,6 +647,11 @@ describe("SuperTokens Multitenancy tenant interactions", function () {

await removeTenant("customer1");

// We need to wait for a while so that the login_methods
// endpoint doesn't crash. Essentially, it seems like the core
// take a few seconds to update.
await page.waitForTimeout(3000);

let getDynamicLoginMethodsCalled = false;
await page.setRequestInterception(true);
const requestHandler = (request) => {
Expand Down
12 changes: 10 additions & 2 deletions test/end-to-end/passwordless.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,11 @@ export function getPasswordlessTestCases({ authRecipe, logId, generalErrorRecipe
await backendHook("before");
({ browser, page } = await initBrowser(contactMethod, consoleLogs, authRecipe));
const coreUrl = await setupCoreApp();
await setupST({ coreUrl, passwordlessFlowType: "USER_INPUT_CODE", passwordlessContactMethod: contactMethod });
await setupST({
coreUrl,
passwordlessFlowType: "USER_INPUT_CODE",
passwordlessContactMethod: contactMethod,
});
});

after(async function () {
Expand Down Expand Up @@ -463,7 +467,11 @@ export function getPasswordlessTestCases({ authRecipe, logId, generalErrorRecipe
disablePhoneGuess: true,
}));
const coreUrl = await setupCoreApp();
await setupST({ coreUrl, passwordlessFlowType: "USER_INPUT_CODE", passwordlessContactMethod: contactMethod });
await setupST({
coreUrl,
passwordlessFlowType: "USER_INPUT_CODE",
passwordlessContactMethod: contactMethod,
});
});

after(async function () {
Expand Down
5 changes: 5 additions & 0 deletions test/end-to-end/thirdpartyemailpassword.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ import {
backendHook,
setupCoreApp,
setupST,
isThirdPartyEmailPasswordSupported,
} from "../helpers";
import {
TEST_CLIENT_BASE_URL,
Expand All @@ -71,6 +72,10 @@ describe("SuperTokens Third Party Email Password", function () {
const appConfig = {};

before(async function () {
if (!(await isThirdPartyEmailPasswordSupported())) {
this.skip();
}

await backendHook("before");
const coreUrl = await setupCoreApp();
appConfig.coreUrl = coreUrl;
Expand Down
9 changes: 9 additions & 0 deletions test/helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -1003,6 +1003,15 @@ export async function isThirdPartyPasswordlessSupported() {
return false;
}

export async function isThirdPartyEmailPasswordSupported() {
const features = await getFeatureFlags();
if (features.includes("thirdpartyemailpassword")) {
return true;
}

return false;
}

export async function isUserRolesSupported() {
const features = await getFeatureFlags();
if (!features.includes("userroles")) {
Expand Down
Loading