diff --git a/test/e2e/specs/multiple-users.spec.js b/test/e2e/specs/multiple-users.spec.js index 7940d8e23..36428e15a 100644 --- a/test/e2e/specs/multiple-users.spec.js +++ b/test/e2e/specs/multiple-users.spec.js @@ -44,6 +44,10 @@ test.describe("Multiple Users", () => { await page.reload(); await expect(page.getByText("Log in")).toBeVisible(); + // Try to log in as the admin user + await login(page, "admin", true); // Expect failure + await screenshot(testInfo, page); + // Login as the new user await page.goto("./dashboard"); // Assuming the new user has ID 2 await login(page, "newuser"); @@ -60,6 +64,8 @@ test.describe("Multiple Users", () => { await page.reload(); await expect(page.getByText("Log in")).toBeVisible(); + // Try to log in as the new user + await login(page, "newuser", true); // Expect failure await screenshot(testInfo, page); }); }); diff --git a/test/e2e/util-test.js b/test/e2e/util-test.js index 5e85f4ef8..c5a4b4b3f 100644 --- a/test/e2e/util-test.js +++ b/test/e2e/util-test.js @@ -1,3 +1,5 @@ +import { expect } from "@playwright/test"; + const fs = require("fs"); const path = require("path"); const serverUrl = require("../../config/playwright.config.js").url; @@ -20,9 +22,10 @@ export async function screenshot(testInfo, page) { /** * @param {Page} page Page * @param {string} user Username to log in with + * @param {boolean} expectFail Whether to expect a failure (true) or success (false) * @returns {Promise} */ -export async function login(page, user = "admin") { +export async function login(page, user = "admin", expectFail = false) { // Login await page.getByPlaceholder("Username").click(); await page.getByPlaceholder("Username").fill(user); @@ -30,7 +33,12 @@ export async function login(page, user = "admin") { await page.getByPlaceholder("Password").fill(user + "123"); await page.getByLabel("Remember me").check(); await page.getByRole("button", { name: "Log in" }).click(); - await page.isVisible("text=Add New Monitor"); + + if (expectFail) { + await expect(page.getByRole("alert")).toBeVisible(); + } else { + await page.isVisible("text=Add New Monitor"); + } } /**