2022-02-02 18:33:27 +00:00
|
|
|
import { expect, test } from "@playwright/test";
|
2021-12-15 16:25:49 +00:00
|
|
|
|
2022-07-28 19:58:26 +00:00
|
|
|
import prisma from "@calcom/prisma";
|
2022-03-24 17:45:56 +00:00
|
|
|
|
2021-12-15 16:25:49 +00:00
|
|
|
test.describe("Onboarding", () => {
|
|
|
|
test.use({ storageState: "playwright/artifacts/onboardingStorageState.json" });
|
|
|
|
|
2022-03-24 17:45:56 +00:00
|
|
|
// You want to always reset account completedOnboarding after each test
|
|
|
|
test.afterEach(async () => {
|
|
|
|
// Revert DB change
|
|
|
|
await prisma.user.update({
|
|
|
|
where: {
|
|
|
|
email: "onboarding@example.com",
|
|
|
|
},
|
|
|
|
data: {
|
|
|
|
username: "onboarding",
|
|
|
|
completedOnboarding: false,
|
|
|
|
},
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2021-12-15 16:25:49 +00:00
|
|
|
test("redirects to /getting-started after login", async ({ page }) => {
|
|
|
|
await page.goto("/event-types");
|
|
|
|
await page.waitForNavigation({
|
|
|
|
url(url) {
|
|
|
|
return url.pathname === "/getting-started";
|
|
|
|
},
|
|
|
|
});
|
2021-11-08 14:10:02 +00:00
|
|
|
});
|
2022-03-24 17:45:56 +00:00
|
|
|
|
|
|
|
test.describe("Onboarding", () => {
|
|
|
|
test("update onboarding username via localstorage", async ({ page }) => {
|
2022-05-14 03:02:10 +00:00
|
|
|
/**
|
|
|
|
* We need to come up with a better test since all test are run in an incognito window.
|
|
|
|
* Meaning that all localstorage access is null here.
|
|
|
|
*/
|
|
|
|
test.fixme();
|
2022-03-24 17:45:56 +00:00
|
|
|
await page.addInitScript(() => {
|
|
|
|
window.localStorage.setItem("username", "alwaysavailable");
|
|
|
|
}, {});
|
|
|
|
// Try to go getting started with a available username
|
|
|
|
await page.goto("/getting-started");
|
|
|
|
// Wait for useEffectUpdate to run
|
2022-05-17 19:31:49 +00:00
|
|
|
// eslint-disable-next-line playwright/no-wait-for-timeout
|
2022-03-24 17:45:56 +00:00
|
|
|
await page.waitForTimeout(1000);
|
|
|
|
|
|
|
|
const updatedUser = await prisma.user.findUnique({
|
|
|
|
where: { email: "onboarding@example.com" },
|
|
|
|
select: { id: true, username: true },
|
|
|
|
});
|
|
|
|
|
|
|
|
expect(updatedUser?.username).toBe("alwaysavailable");
|
|
|
|
});
|
|
|
|
});
|
2021-11-08 14:10:02 +00:00
|
|
|
});
|