43 lines
1.7 KiB
TypeScript
43 lines
1.7 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
import { describe } from 'node:test';
|
|
|
|
describe("Login form", () => {
|
|
test('has title', async ({ page }) => {
|
|
await page.goto('http://localhost:3016/');
|
|
await expect(page.getByRole("heading", { name: /Welcome/ })).toBeVisible();
|
|
});
|
|
|
|
test('has login form', async ({ page }) => {
|
|
await page.goto('http://localhost:3016/');
|
|
|
|
const name_input = page.getByRole("textbox", { name: "username" });
|
|
const password_input = page.getByRole("textbox", { name: "username" });
|
|
|
|
await expect(page.getByTestId("login-form")).toBeVisible();
|
|
await expect(name_input).toBeVisible();
|
|
await expect(password_input).toBeVisible();
|
|
});
|
|
|
|
test("log in form displays error if credentials are wrogn", async ({ page }) => {
|
|
await page.goto('http://localhost:3016/');
|
|
await page.getByRole("textbox", { name: "username" }).fill("Test_User");
|
|
await page.getByRole("textbox", { name: "password" }).fill("Test_Passwd");
|
|
|
|
const button_element = page.getByRole("button", { name: /Log-in/ })
|
|
button_element.click();
|
|
|
|
await expect(page.getByText(/^Wrong credentials.*$/)).toBeVisible();
|
|
})
|
|
|
|
test("log in redirects to another page if credentials are correct", async ({ page }) => {
|
|
await page.goto('http://localhost:3016/');
|
|
await page.getByRole("textbox", { name: "username" }).fill("dqnid");
|
|
await page.getByRole("textbox", { name: "password" }).fill("1234");
|
|
|
|
const button_element = page.getByRole("button", { name: /Log-in/ })
|
|
button_element.click();
|
|
|
|
await expect(page.getByAltText("Main logo")).toBeVisible();
|
|
})
|
|
});
|