Playwright_TS/Playwright základy na GitHub/tests/login.spec.ts
Lukáš Kaňka a117466599 údržba
2023-08-15 18:27:27 +02:00

80 lines
3.0 KiB
TypeScript

/*
Zápis pomocí Page_Objects --> je kratší, čitatelnější a přehlednější. Pokud se například změní lokátor id nemusím ho měnit ve všech testech
ale, v daném page-objects
ctrl + click mě přesune na zadanou metodu!!
*/
import { test, expect } from '@playwright/test';
//Importujeme vytvořenou třídu z page-objects
import { LoginPage } from '../page-objects/LoginPage';
test('Successful login', async ({ page }) => {
// nová instance loginPage odkazuje na metody co jsme si vytvořili v LoginPage
const loginPage = new LoginPage(page);
// zadáme metody co jsme vytvořily v LoginPage
await loginPage.gotoLoginPage();
// místo tohoto použijeme námi vytvořenou metodu login z LoginPage
//await loginPage.enterValidUsername();
//await loginPage.enterValidPassword();
//await loginPage.clickLoginButton();
// metoda login
await loginPage.login();
// ověříme že jsme se úspěšně přihlásily
await expect(page).toHaveURL('https://www.saucedemo.com/inventory.html');
/*
// způsob jeden test komplet v kódu bez odkazu na page-objects
await page.goto('https://www.saucedemo.com/');
await page.locator('[data-test="username"]').click();
await page.locator('[data-test="username"]').fill('standard_user');
await page.locator('[data-test="password"]').click();
await page.locator('[data-test="password"]').fill('secret_sauce');
await page.locator('[data-test="login-button"]').click();
// Zkontrolujeme jestli na stránce je viditelný Swag Labs
await expect(page.getByText('Swag Labs')).toBeVisible();
*/
});
// test přihlášení s neplatným heslem
test('Cannot login with valid username and invalid password', async ({ page }) => {
// test reporty(video 23):
const loginPage = new LoginPage(page);
await loginPage.gotoLoginPage();
await loginPage.enterValidUsername();
await loginPage.enterInvalidPassword();
await loginPage.clickLoginButton();
await expect(loginPage.invalidCredentialsErrorMessage).toBeVisible();
});
//test s neplatným přihlašovacím jménem
test('Cannot login with invalid username and valid password', async ({ page }) => {
const loginPage = new LoginPage(page);
await loginPage.gotoLoginPage();
await loginPage.enterInvalidUsername();
await loginPage.enterValidPassword();
await loginPage.clickLoginButton();
await expect(loginPage.invalidCredentialsErrorMessage).toBeVisible();
});
//test pouze s kliknutím na login button
test('Cannot login with blank fields', async ({ page }) => {
const loginPage = new LoginPage(page);
await loginPage.gotoLoginPage();
await loginPage.clickLoginButton();
await expect(loginPage.requiredCredentialsErrorMassage).toBeVisible();
});
// přihlášení s zablokovaným userem
test('Cannot login with locked out user', async ({ page }) => {
const loginPage = new LoginPage(page);
await loginPage.gotoLoginPage();
await loginPage.enterLockedOutUser();
await loginPage.enterValidPassword();
await loginPage.clickLoginButton();
await expect(loginPage.lockedOutErrorMassage).toBeVisible();
});