mirror of
https://github.com/streetwriters/notesnook.git
synced 2025-12-23 23:19:40 +01:00
fix: loading stuck on recovery finish
This commit is contained in:
@@ -28,6 +28,13 @@ async function logoutUser() {
|
||||
expect(await isAbsent(getTestId("navitem-sync"))).toBe(true);
|
||||
}
|
||||
|
||||
async function forceExpireSession() {
|
||||
await page.evaluate(() => {
|
||||
window.localStorage.setItem("sessionExpired", "true");
|
||||
});
|
||||
await page.reload();
|
||||
}
|
||||
|
||||
test("login user", async () => {
|
||||
await loginUser();
|
||||
|
||||
@@ -146,3 +153,62 @@ test("reset user password", async ({ page, browserName }) => {
|
||||
newKey = cKey;
|
||||
}
|
||||
});
|
||||
|
||||
test("reset user password after session expiry", async ({
|
||||
page,
|
||||
browserName,
|
||||
}) => {
|
||||
test.setTimeout(2 * 60 * 1000);
|
||||
test.skip(browserName !== "chromium", "Cannot run in parallel.");
|
||||
|
||||
let currentPassword = "";
|
||||
let currentKey = "";
|
||||
|
||||
let newPassword = USER.password;
|
||||
let newKey = "";
|
||||
|
||||
let email = USER.email;
|
||||
|
||||
for (let i = 0; i <= 1; ++i) {
|
||||
await loginUser({ email, password: currentPassword });
|
||||
|
||||
await forceExpireSession();
|
||||
|
||||
await page.click(getTestId("auth-forgot-password"));
|
||||
|
||||
await page.click(getTestId("submitButton"));
|
||||
|
||||
await page.waitForSelector(getTestId("step-backup-data"));
|
||||
|
||||
await page.click(getTestId("step-next"));
|
||||
|
||||
await page.waitForSelector(getTestId("step-new-password"));
|
||||
|
||||
await page.fill(getTestId("new_password"), newPassword);
|
||||
|
||||
await page.click(getTestId("step-next"));
|
||||
|
||||
await page.waitForSelector(getTestId("step-finished"));
|
||||
|
||||
const actualRecoveryKey = await page.innerText(
|
||||
getTestId("new-recovery-key")
|
||||
);
|
||||
expect(actualRecoveryKey).toBe(newKey);
|
||||
|
||||
await page.click(getTestId("step-finish"));
|
||||
|
||||
await loginUser({ password: newPassword }, false);
|
||||
|
||||
await page.waitForSelector(getTestId("sync-status-success"));
|
||||
|
||||
await logoutUser();
|
||||
|
||||
const cPassword = currentPassword;
|
||||
currentPassword = newPassword;
|
||||
newPassword = cPassword;
|
||||
|
||||
const cKey = currentKey;
|
||||
currentKey = newKey;
|
||||
newKey = cKey;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -13,7 +13,7 @@ const USER = {
|
||||
async function loginUser(user = USER, navigate = true) {
|
||||
if (navigate) await page.click(getTestId("navitem-login"));
|
||||
|
||||
await page.fill(getTestId("email"), user.email);
|
||||
if (user.email) await page.fill(getTestId("email"), user.email);
|
||||
|
||||
await page.fill(getTestId("password"), user.password);
|
||||
|
||||
|
||||
@@ -18,14 +18,14 @@ const projects = IS_CI
|
||||
browserName: "chromium",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Firefox",
|
||||
use: { browserName: "firefox" },
|
||||
},
|
||||
{
|
||||
name: "WebKit",
|
||||
use: { browserName: "webkit" },
|
||||
},
|
||||
// {
|
||||
// name: "Firefox",
|
||||
// use: { browserName: "firefox" },
|
||||
// },
|
||||
// {
|
||||
// name: "WebKit",
|
||||
// use: { browserName: "webkit" },
|
||||
// },
|
||||
];
|
||||
|
||||
module.exports = {
|
||||
@@ -44,7 +44,7 @@ module.exports = {
|
||||
reporter: "list",
|
||||
retries: IS_CI ? 3 : 1,
|
||||
use: {
|
||||
headless: true,
|
||||
headless: false,
|
||||
acceptDownloads: true,
|
||||
|
||||
// Artifacts
|
||||
|
||||
@@ -400,7 +400,8 @@ function FinalStep() {
|
||||
})();
|
||||
}, [isSessionExpired]);
|
||||
|
||||
if (!isReady) return <Loader title={"Finalizing. Please wait..."} />;
|
||||
if (!isReady && !isSessionExpired)
|
||||
return <Loader title={"Finalizing. Please wait..."} />;
|
||||
return (
|
||||
<Step
|
||||
heading="Account password changed"
|
||||
|
||||
Reference in New Issue
Block a user