@@ -190,7 +190,9 @@ export default function Signup({ prepopulateFormValues, token, orgSlug }: Signup
{/* Header */}
- {errors.apiError &&
}
+ {errors.apiError && (
+
+ )}
{IS_CALCOM ? t("create_your_calcom_account") : t("create_your_account")}
@@ -215,6 +217,7 @@ export default function Signup({ prepopulateFormValues, token, orgSlug }: Signup
setPremiumUsername(value)}
addOnLeading={
orgSlug
@@ -223,10 +226,16 @@ export default function Signup({ prepopulateFormValues, token, orgSlug }: Signup
}
/>
{/* Email */}
-
+
{/* Password */}
{
+ test.afterAll(async ({ users }) => {
+ await users.deleteAll();
+ });
+ test("Username is taken", async ({ page, users }) => {
+ // log in trail user
+ await test.step("Sign up", async () => {
+ const pro = await users.create({
+ username: "pro",
+ });
+
+ await page.goto("/signup");
+ await page.waitForLoadState("networkidle");
+
+ const alertMessage = "Username or email is already taken";
+
+ // Fill form
+ await page.locator('input[name="username"]').fill("pro");
+ await page.locator('input[name="email"]').fill("pro@example.com");
+ await page.locator('input[name="password"]').fill("Password99!");
+
+ // Submit form
+
+ await page.click('button[type="submit"]');
+ const alert = await page.waitForSelector('[data-testid="alert"]');
+
+ await expect(alert).toHaveText(alertMessage);
+ });
+ });
+ test("Email is taken", async ({ page, users }) => {
+ // log in trail user
+ await test.step("Sign up", async () => {
+ await users.create({
+ username: "pro",
+ });
+
+ await page.goto("/signup");
+ await page.waitForLoadState("networkidle");
+
+ const alertMessage = "Username or email is already taken";
+
+ // Fill form
+ await page.locator('input[name="username"]').fill("randomuserwhodoesntexist");
+ await page.locator('input[name="email"]').fill("pro@example.com");
+ await page.locator('input[name="password"]').fill("Password99!");
+
+ // Submit form
+
+ await page.click('button[type="submit"]');
+ const alert = await page.waitForSelector('[data-testid="alert"]');
+
+ await expect(alert).toHaveText(alertMessage);
+ });
+ });
+});