From 163bf6a0cc985b21706efee3166d5769c390d7eb Mon Sep 17 00:00:00 2001 From: QAComet Date: Sun, 21 Apr 2024 17:18:05 -0600 Subject: [PATCH] test(e2e): add login tests --- e2e/tests/public/login.spec.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 e2e/tests/public/login.spec.ts diff --git a/e2e/tests/public/login.spec.ts b/e2e/tests/public/login.spec.ts new file mode 100644 index 0000000..d39b34f --- /dev/null +++ b/e2e/tests/public/login.spec.ts @@ -0,0 +1,32 @@ +import { expect, test } from "../../index" + +test("Logging in without credentials displays an error", async ({ loginPage }) => { + await loginPage.submitLoginButton.click() + const toast = await loginPage.getLatestToast() + await expect(toast.locator).toBeVisible() + await expect(toast.locator).toHaveAttribute("data-type", "error") +}) + +test("Logging in with an erroneous password displays an error", async ({ loginPage }) => { + await loginPage.usernameInput.fill(process.env['TEST_USERNAME'] || "") + await loginPage.passwordInput.fill("NOT_MY_PASSWORD_DNE_ERROR") + await loginPage.submitLoginButton.click() + const toast = await loginPage.getLatestToast() + await expect(toast.locator).toBeVisible() + await expect(toast.locator).toHaveAttribute("data-type", "error") +}) + +test("Logging in without valid credentials displays an error", async ({ loginPage }) => { + await loginPage.submitLoginButton.click() + const toast = await loginPage.getLatestToast() + await expect(toast.locator).toBeVisible() + await expect(toast.locator).toHaveAttribute("data-type", "error") +}) + +test("Logging in with a valid username and password works as expected", async ({ page, loginPage, dashboardPage }) => { + await loginPage.usernameInput.fill(process.env['TEST_USERNAME'] || "") + await loginPage.passwordInput.fill(process.env['TEST_PASSWORD'] || "") + await loginPage.submitLoginButton.click() + await expect(loginPage.loginForm).not.toBeVisible() + await expect(dashboardPage.container).toBeVisible() +}) \ No newline at end of file