80 lines
3.0 KiB
TypeScript
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();
|
|
|
|
});
|