diff --git a/tests/e2e/misc.spec.ts b/tests/e2e/misc.spec.ts index 2dbe3fae..e370789d 100644 --- a/tests/e2e/misc.spec.ts +++ b/tests/e2e/misc.spec.ts @@ -20,3 +20,23 @@ test("Sign up function signs up", async ({ page, context }) => { expect(foundUser).toEqual(user as any); }); + +test("Sin in function switches users", async ({ page }) => { + const { user: user1, sessionToken: sessionToken1 } = + await PlaywrightUtils.signUp(page); + let currentUser = await PlaywrightUtils.getUser(page); + expect(currentUser._id).toEqual(user1._id); + + const { user: user2, sessionToken: sessionToken2 } = + await PlaywrightUtils.signUp(page); + currentUser = await PlaywrightUtils.getUser(page); + expect(currentUser._id).toEqual(user2._id); + + await PlaywrightUtils.signIn(page, sessionToken1); + currentUser = await PlaywrightUtils.getUser(page); + expect(currentUser._id).toEqual(user1._id); + + await PlaywrightUtils.signIn(page, sessionToken2); + currentUser = await PlaywrightUtils.getUser(page); + expect(currentUser._id).toEqual(user2._id); +}); diff --git a/tests/e2e/index.spec.ts b/tests/e2e/pages/index.spec.ts similarity index 99% rename from tests/e2e/index.spec.ts rename to tests/e2e/pages/index.spec.ts index c6c0cecb..abdd90bd 100644 --- a/tests/e2e/index.spec.ts +++ b/tests/e2e/pages/index.spec.ts @@ -50,4 +50,4 @@ test("Has link to Decatur Robotics website", async ({ page }) => { await expect( page.locator("a[href='https://www.decaturrobotics.org/our-team']"), ).toBeVisible(); -}); +}); \ No newline at end of file diff --git a/tests/e2e/profile.spec.ts b/tests/e2e/pages/profile.spec.ts similarity index 78% rename from tests/e2e/profile.spec.ts rename to tests/e2e/pages/profile.spec.ts index 9c89506c..a5404fea 100644 --- a/tests/e2e/profile.spec.ts +++ b/tests/e2e/pages/profile.spec.ts @@ -41,3 +41,16 @@ test.describe("Edit user name", () => { await expect(page.getByText("New Name")).toBeVisible(); }); }); + +test("Sign out button signs out", async ({ page }) => { + const { user } = await PlaywrightUtils.signUp(page); + + await page.goto("/profile"); + + const signOutButton = page.getByRole("button", { name: /sign out/i }).first(); + await signOutButton.click(); + + await expect( + page.getByRole("heading", { name: /sign in/i }).first(), + ).toBeVisible(); +});