Back to saved runs

Saved run detail

As Alex, I want to log in with my email and password so that I can see my account dashboard.

passed
Execution passed.
View GitHub run
Ready
0
Failed
0
Test cases
3
Duration
7.9s
AI-created test cases

What the AI planned

Jun 24, 12:47 AM

Successful login with valid credentials
happy
- Verify the URL redirects to the dashboard
- Verify the dashboard header or welcome message is visible
Login failure with invalid password
negative
- Verify an error message indicating invalid credentials is displayed
- Verify the URL remains on the login page
Login validation with empty fields
negative
- Verify HTML5 validation or custom error messages are shown for required fields
Generated Playwright

generated.spec.ts

import { test, expect } from '@playwright/test';

test.describe('Login Flow', () => {
  test('TC-001: Successful login with valid credentials', async ({ page }) => {
    await page.goto('https://qa-demo-bank.vercel.app/login');
    await page.getByLabel('Email address').fill('alex.rivera@qademobank.test');
    await page.getByLabel('Password').fill('demo-password');
    await page.getByRole('button', { name: 'Continue' }).click();
    await expect(page).toHaveURL(/.*\/dashboard/);
    await expect(page.getByRole('heading', { name: 'Dashboard', exact: true })).toBeVisible();
  });

  test('TC-002: Login failure with invalid password', async ({ page }) => {
    await page.goto('https://qa-demo-bank.vercel.app/login');
    await page.getByLabel('Email address').fill('alex.rivera@qademobank.test');
    await page.getByLabel('Password').fill('incorrect-password');
    await page.getByRole('button', { name: 'Continue' }).click();
    await expect(page.getByTestId('login-error')).toHaveText('Invalid demo credentials.');
    await expect(page).toHaveURL(/.*\/login/);
  });

  test('TC-003: Login validation with empty fields', async ({ page }) => {
    await page.goto('https://qa-demo-bank.vercel.app/login');
    await page.getByRole('button', { name: 'Continue' }).click();
    await expect(page.getByLabel('Email address')).toHaveAttribute('required');
    await expect(page).toHaveURL(/.*\/login/);
  });
});