diff --git a/apps/web/playwright/organization/organization-invitation.e2e.ts b/apps/web/playwright/organization/organization-invitation.e2e.ts
index 82f783fa098fa2..43701190ee4a5c 100644
--- a/apps/web/playwright/organization/organization-invitation.e2e.ts
+++ b/apps/web/playwright/organization/organization-invitation.e2e.ts
@@ -296,6 +296,8 @@ test.describe("Organization", () => {
await test.step("Signing up with the previous username of the migrated user - shouldn't be allowed", async () => {
await page.goto("/signup");
+ await expect(page.locator('[data-testid="continue-with-email-button"]')).toBeVisible();
+ await page.locator('[data-testid="continue-with-email-button"]').click();
await expect(page.locator("text=Create your account")).toBeVisible();
const usernameInput = page.locator('input[name="username"]');
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
diff --git a/apps/web/playwright/signup.e2e.ts b/apps/web/playwright/signup.e2e.ts
index 348994717c6dc7..48dbcdb4244b23 100644
--- a/apps/web/playwright/signup.e2e.ts
+++ b/apps/web/playwright/signup.e2e.ts
@@ -10,7 +10,27 @@ import { expectInvitationEmailToBeReceived } from "./team/expects";
test.describe.configure({ mode: "parallel" });
-test.describe("Signup Flow Test", async () => {
+test.describe("Signup Main Page Test", async () => {
+ test.beforeEach(async ({ features }) => {
+ features.reset();
+ });
+
+ test("Continue with email button must exist / work", async ({ page }) => {
+ await page.goto("/signup");
+ await expect(page.locator('[data-testid="continue-with-email-button"]')).toBeVisible();
+ await page.locator('[data-testid="continue-with-email-button"]').click();
+ await expect(page.locator("text=Create your account")).toBeVisible();
+ });
+
+ test("Continue with google button must exist / work", async ({ page }) => {
+ await page.goto("/signup");
+ await expect(page.locator('[data-testid="continue-with-google-button"]')).toBeVisible();
+ await page.locator('[data-testid="continue-with-google-button"]').click();
+ await page.waitForURL("/auth/sso/google");
+ });
+});
+
+test.describe("Email Signup Flow Test", async () => {
test.beforeEach(async ({ features }) => {
features.reset(); // This resets to the inital state not an empt yarray
});
@@ -25,6 +45,8 @@ test.describe("Signup Flow Test", async () => {
});
await page.goto("/signup");
+ await expect(page.locator('[data-testid="continue-with-email-button"]')).toBeVisible();
+ await page.locator('[data-testid="continue-with-email-button"]').click();
await expect(page.locator("text=Create your account")).toBeVisible();
const alertMessage = "Username or email is already taken";
@@ -52,7 +74,8 @@ test.describe("Signup Flow Test", async () => {
});
await page.goto("/signup");
-
+ await expect(page.locator('[data-testid="continue-with-email-button"]')).toBeVisible();
+ await page.locator('[data-testid="continue-with-email-button"]').click();
await expect(page.locator("text=Create your account")).toBeVisible();
const alertMessage = "Username or email is already taken";
@@ -84,6 +107,8 @@ test.describe("Signup Flow Test", async () => {
// Signup with premium username name
await page.goto("/signup");
+ await expect(page.locator('[data-testid="continue-with-email-button"]')).toBeVisible();
+ await page.locator('[data-testid="continue-with-email-button"]').click();
await expect(page.locator("text=Create your account")).toBeVisible();
// Fill form
@@ -112,6 +137,8 @@ test.describe("Signup Flow Test", async () => {
});
await page.goto("/signup");
+ await expect(page.locator('[data-testid="continue-with-email-button"]')).toBeVisible();
+ await page.locator('[data-testid="continue-with-email-button"]').click();
await expect(page.locator("text=Create your account")).toBeVisible();
// Fill form
@@ -131,6 +158,8 @@ test.describe("Signup Flow Test", async () => {
test("Signup fields prefilled with query params", async ({ page, users }) => {
const signupUrlWithParams = "/signup?username=rick-jones&email=rick-jones%40example.com";
await page.goto(signupUrlWithParams);
+ await expect(page.locator('[data-testid="continue-with-email-button"]')).toBeVisible();
+ await page.locator('[data-testid="continue-with-email-button"]').click();
await expect(page.locator("text=Create your account")).toBeVisible();
// Fill form
@@ -212,6 +241,8 @@ test.describe("Signup Flow Test", async () => {
});
await page.goto("/signup");
+ await expect(page.locator('[data-testid="continue-with-email-button"]')).toBeVisible();
+ await page.locator('[data-testid="continue-with-email-button"]').click();
await expect(page.locator("text=Create your account")).toBeVisible();
// Fill form
@@ -283,7 +314,8 @@ test.describe("Signup Flow Test", async () => {
const url = new URL(newPage.url());
expect(url.pathname).toBe("/signup");
-
+ await expect(page.locator('[data-testid="continue-with-email-button"]')).toBeVisible();
+ await page.locator('[data-testid="continue-with-email-button"]').click();
// Check required fields
await newPage.locator("input[name=password]").fill(`P4ssw0rd!`);
await newPage.locator("button[type=submit]").click();
diff --git a/apps/web/public/google-icon-colored.svg b/apps/web/public/google-icon-colored.svg
new file mode 100644
index 00000000000000..3f8813d5cafd37
--- /dev/null
+++ b/apps/web/public/google-icon-colored.svg
@@ -0,0 +1,10 @@
+
\ No newline at end of file
diff --git a/packages/features/auth/SAMLLogin.tsx b/packages/features/auth/SAMLLogin.tsx
index 598d14719b4093..6094b015c7ac2d 100644
--- a/packages/features/auth/SAMLLogin.tsx
+++ b/packages/features/auth/SAMLLogin.tsx
@@ -36,10 +36,9 @@ export function SAMLLogin({ samlTenantID, samlProductID, setErrorMessage }: Prop
return (
);
}