|
| 1 | +import { test, expect } from "@playwright/test"; |
| 2 | +import { randomName } from "../../helpers"; |
| 3 | +import { beforeCoderTest } from "../../hooks"; |
| 4 | + |
| 5 | +test.beforeEach(async ({ page }) => await beforeCoderTest(page)); |
| 6 | + |
| 7 | +test("create user with password", async ({ page, baseURL }) => { |
| 8 | + await page.goto(`${baseURL}/users`, { waitUntil: "domcontentloaded" }); |
| 9 | + await expect(page).toHaveTitle("Users - Coder"); |
| 10 | + |
| 11 | + await page.getByRole("button", { name: "Create user" }).click(); |
| 12 | + await expect(page).toHaveTitle("Create User - Coder"); |
| 13 | + |
| 14 | + const name = randomName(); |
| 15 | + const userValues = { |
| 16 | + username: name, |
| 17 | + email: `${name}@coder.com`, |
| 18 | + loginType: "password", |
| 19 | + password: "s3cure&password!", |
| 20 | + }; |
| 21 | + |
| 22 | + await page.getByLabel("Username").fill(userValues.username); |
| 23 | + await page.getByLabel("Email").fill(userValues.email); |
| 24 | + await page.getByLabel("Login Type").click(); |
| 25 | + await page.getByRole("option", { name: "Password", exact: false }).click(); |
| 26 | + // Using input[name=password] due to the select element utilizing 'password' |
| 27 | + // as the label for the currently active option. |
| 28 | + const passwordField = page.locator("input[name=password]"); |
| 29 | + await passwordField.fill(userValues.password); |
| 30 | + await page.getByRole("button", { name: "Create user" }).click(); |
| 31 | + await expect(page.getByText("Successfully created user.")).toBeVisible(); |
| 32 | + |
| 33 | + await expect(page).toHaveTitle("Users - Coder"); |
| 34 | + await expect(page.locator("tr", { hasText: userValues.email })).toBeVisible(); |
| 35 | +}); |
0 commit comments