import { test, expect } from '@playwright/test'; import { LoginPage } from './pages/LoginPage'; import { LogParser } from './utils/logParser'; test.describe('Community Login Page Tests', () => { let loginPage: LoginPage; let logParser: LogParser; test.beforeEach(async ({ page }) => { loginPage = new LoginPage(page); logParser = new LogParser(); await loginPage.navigate(); }); // Basic login/logout flow test('Successful login redirects to dashboard', async ({ page }) => { await loginPage.login('valid_user', 'valid_password'); await loginPage.verifySuccessfulLogin(); }); // Failed login scenarios test('Invalid username shows appropriate error', async () => { await loginPage.login('invalid_user', 'valid_password'); await loginPage.verifyLoginError('Invalid username'); }); test('Invalid password shows appropriate error', async () => { await loginPage.login('valid_user', 'invalid_password'); await loginPage.verifyLoginError('The password you entered'); }); // Password reset functionality test('Password reset link redirects properly', async ({ page }) => { await loginPage.clickResetPassword(); await expect(page).toHaveURL(/.*\/wp-login\.php\?action=lostpassword/); }); // Remember me functionality test('Remember me sets persistent cookie', async () => { await loginPage.login('valid_user', 'valid_password', true); await loginPage.verifyRememberMeCookie(); }); // Input validation test('Empty username shows error', async () => { await loginPage.login('', 'password'); await loginPage.verifyLoginError('The username field is empty.'); }); test('Empty password shows error', async () => { await loginPage.login('user', ''); await loginPage.verifyLoginError('password field is empty'); }); // Log validation // test('Login attempt logged properly', async () => { // await loginPage.login('valid_user', 'valid_password'); // await loginPage.checkLogEntries(logParser); // }); });