2021-08-20 11:50:29 +05:00
|
|
|
const { Page, test, expect } = require("@playwright/test");
|
2021-12-31 09:19:33 +05:00
|
|
|
const { getTestId, isTestAll, loginUser, USER } = require("./utils");
|
2021-09-13 11:08:28 +05:00
|
|
|
const { isAbsent, isPresent } = require("./utils/conditions");
|
2021-08-20 11:50:29 +05:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @type {Page}
|
|
|
|
|
*/
|
|
|
|
|
var page = null;
|
|
|
|
|
global.page = null;
|
2021-09-13 11:08:28 +05:00
|
|
|
test.beforeEach(async ({ page: _page, baseURL }) => {
|
2021-08-20 11:50:29 +05:00
|
|
|
global.page = _page;
|
|
|
|
|
page = _page;
|
2021-09-13 11:08:28 +05:00
|
|
|
await page.goto(baseURL);
|
2021-10-23 10:58:44 +05:00
|
|
|
await page.waitForSelector(getTestId("routeHeader"));
|
2021-08-20 11:50:29 +05:00
|
|
|
});
|
|
|
|
|
|
2021-12-16 11:39:54 +05:00
|
|
|
if (!isTestAll()) test.skip();
|
|
|
|
|
|
2021-12-09 12:36:29 +05:00
|
|
|
test("login user", async () => {
|
2021-08-20 12:08:26 +05:00
|
|
|
await loginUser();
|
2021-12-27 22:09:39 +05:00
|
|
|
|
|
|
|
|
expect(await isPresent(getTestId("navitem-sync"))).toBe(true);
|
2021-08-20 11:50:29 +05:00
|
|
|
});
|
2021-12-09 12:36:29 +05:00
|
|
|
|
|
|
|
|
test("logout user", async () => {
|
|
|
|
|
await loginUser();
|
|
|
|
|
|
|
|
|
|
await page.click(getTestId("navitem-settings"));
|
|
|
|
|
|
|
|
|
|
await page.click(getTestId("settings-logout"));
|
|
|
|
|
|
|
|
|
|
await page.waitForSelector(getTestId("dialog-yes"));
|
|
|
|
|
|
|
|
|
|
await page.click(getTestId("dialog-yes"));
|
|
|
|
|
|
|
|
|
|
expect(await isAbsent(getTestId("navitem-sync"))).toBe(true);
|
|
|
|
|
});
|
2021-12-31 09:19:33 +05:00
|
|
|
|
|
|
|
|
test.only("login user and change password repeatedly", async ({
|
|
|
|
|
page,
|
|
|
|
|
browserName,
|
|
|
|
|
}) => {
|
|
|
|
|
test.setTimeout(0);
|
|
|
|
|
test.skip(browserName !== "chromium", "Cannot run in parallel.");
|
|
|
|
|
|
|
|
|
|
let currentPassword = "";
|
|
|
|
|
let newPassword = USER.password;
|
|
|
|
|
let email = USER.email;
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < 10; i++) {
|
|
|
|
|
await test.step(
|
|
|
|
|
`login user using password ${currentPassword} (${i})`,
|
|
|
|
|
async () => {
|
|
|
|
|
await loginUser({
|
|
|
|
|
email,
|
|
|
|
|
password: currentPassword,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
await page.waitForSelector(getTestId("sync-status-success"));
|
|
|
|
|
|
|
|
|
|
await page.click(getTestId("navitem-settings"));
|
|
|
|
|
|
|
|
|
|
await page.click(getTestId("settings-change-password"));
|
|
|
|
|
|
|
|
|
|
await page.waitForSelector(getTestId("dialog-yes"));
|
|
|
|
|
|
|
|
|
|
await page.fill(getTestId("dialog-password"), currentPassword);
|
|
|
|
|
|
|
|
|
|
await page.fill(getTestId("dialog-new-password"), newPassword);
|
|
|
|
|
|
|
|
|
|
await page.click(getTestId("dialog-yes"));
|
|
|
|
|
|
|
|
|
|
expect(await isAbsent(getTestId("dialog-yes"), 60 * 1000)).toBe(true);
|
|
|
|
|
|
|
|
|
|
await page.click(getTestId("settings-logout"));
|
|
|
|
|
|
|
|
|
|
await page.waitForSelector(getTestId("dialog-yes"));
|
|
|
|
|
|
|
|
|
|
await page.click(getTestId("dialog-yes"));
|
|
|
|
|
|
|
|
|
|
expect(await isAbsent(getTestId("navitem-sync"))).toBe(true);
|
|
|
|
|
|
|
|
|
|
const cPassword = currentPassword;
|
|
|
|
|
currentPassword = newPassword;
|
|
|
|
|
newPassword = cPassword;
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
});
|