Some test fixes
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,4 +1,3 @@
|
|||||||
# Logs
|
|
||||||
logs
|
logs
|
||||||
*.log
|
*.log
|
||||||
npm-debug.log*
|
npm-debug.log*
|
||||||
@@ -15,7 +14,6 @@ server/prisma/dev.db
|
|||||||
test-results/
|
test-results/
|
||||||
playwright-report/
|
playwright-report/
|
||||||
|
|
||||||
# Editor directories and files
|
|
||||||
.vscode/*
|
.vscode/*
|
||||||
!.vscode/extensions.json
|
!.vscode/extensions.json
|
||||||
.idea
|
.idea
|
||||||
|
|||||||
@@ -5,14 +5,17 @@ export default defineConfig({
|
|||||||
fullyParallel: true,
|
fullyParallel: true,
|
||||||
forbidOnly: !!process.env.CI,
|
forbidOnly: !!process.env.CI,
|
||||||
retries: process.env.CI ? 2 : 0,
|
retries: process.env.CI ? 2 : 0,
|
||||||
workers: process.env.CI ? 1 : undefined,
|
workers: 1,
|
||||||
reporter: 'html',
|
reporter: 'html',
|
||||||
use: {
|
use: {
|
||||||
baseURL: 'http://localhost:3000',
|
baseURL: 'http://localhost:3000',
|
||||||
trace: 'on-first-retry',
|
trace: 'on-first-retry',
|
||||||
|
launchOptions: {
|
||||||
|
headless: false
|
||||||
|
}
|
||||||
},
|
},
|
||||||
webServer: {
|
webServer: {
|
||||||
command: 'npm run dev:full',
|
command: 'rm -f server/prisma/prisma/dev.db && npm run migrate:deploy --prefix server && npm run dev:full & wait-on http-get://localhost:3000',
|
||||||
url: 'http://localhost:3000',
|
url: 'http://localhost:3000',
|
||||||
reuseExistingServer: !process.env.CI,
|
reuseExistingServer: !process.env.CI,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -6,7 +6,9 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node dist/index.js",
|
"start": "node dist/index.js",
|
||||||
"dev": "ts-node-dev -r dotenv/config --respawn --transpile-only src/index.ts",
|
"dev": "ts-node-dev -r dotenv/config --respawn --transpile-only src/index.ts",
|
||||||
"build": "tsc"
|
"build": "tsc",
|
||||||
|
"migrate:deploy": "npx prisma migrate deploy"
|
||||||
|
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@google/generative-ai": "^0.24.1",
|
"@google/generative-ai": "^0.24.1",
|
||||||
|
|||||||
Binary file not shown.
@@ -7,8 +7,8 @@ test.describe('III. Workout Tracking', () => {
|
|||||||
test('C. Active Session - Finish Session', async ({ page }) => {
|
test('C. Active Session - Finish Session', async ({ page }) => {
|
||||||
// 1. Start a 'Free Workout' session.
|
// 1. Start a 'Free Workout' session.
|
||||||
await page.goto('http://localhost:3000/');
|
await page.goto('http://localhost:3000/');
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.locator('input[type="email"]').fill('admin@gymflow.ai');
|
||||||
await page.locator('input[type="password"]').fill('admin1234');
|
await page.locator('input[type="password"]').fill('admin123');
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
await page.getByRole('spinbutton').fill('83');
|
await page.getByRole('spinbutton').fill('83');
|
||||||
@@ -17,8 +17,8 @@ test.describe('III. Workout Tracking', () => {
|
|||||||
// 2. Log at least one set.
|
// 2. Log at least one set.
|
||||||
await page.getByRole('textbox', { name: '0' }).fill('Bench Press');
|
await page.getByRole('textbox', { name: '0' }).fill('Bench Press');
|
||||||
await page.getByRole('button', { name: 'Bench Press' }).click();
|
await page.getByRole('button', { name: 'Bench Press' }).click();
|
||||||
await page.getByPlaceholder('0').nth(1).fill('80');
|
await page.getByRole('spinbutton').nth(1).fill('80');
|
||||||
await page.getByPlaceholder('0').nth(2).fill('5');
|
await page.getByRole('spinbutton').nth(2).fill('5');
|
||||||
await page.getByRole('button', { name: 'Log Set' }).click();
|
await page.getByRole('button', { name: 'Log Set' }).click();
|
||||||
|
|
||||||
// 3. Click 'Finish' button.
|
// 3. Click 'Finish' button.
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ test.describe('III. Workout Tracking', () => {
|
|||||||
test('C. Active Session - Log Bodyweight Set', async ({ page }) => {
|
test('C. Active Session - Log Bodyweight Set', async ({ page }) => {
|
||||||
// 1. Start a 'Free Workout' session.
|
// 1. Start a 'Free Workout' session.
|
||||||
await page.goto('http://localhost:3000/');
|
await page.goto('http://localhost:3000/');
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.locator('input[type="email"]').fill('admin@gymflow.ai');
|
||||||
await page.locator('input[type="password"]').fill('admin1234');
|
await page.locator('input[type="password"]').fill('admin123');
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
await page.getByRole('spinbutton').fill('83');
|
await page.getByRole('spinbutton').fill('83');
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ test.describe('III. Workout Tracking', () => {
|
|||||||
test('C. Active Session - Log Cardio Set', async ({ page }) => {
|
test('C. Active Session - Log Cardio Set', async ({ page }) => {
|
||||||
// 1. Start a 'Free Workout' session.
|
// 1. Start a 'Free Workout' session.
|
||||||
await page.goto('http://localhost:3000/');
|
await page.goto('http://localhost:3000/');
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.locator('input[type="email"]').fill('admin@gymflow.ai');
|
||||||
await page.locator('input[type="password"]').fill('admin1234');
|
await page.locator('input[type="password"]').fill('admin123');
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
await page.getByRole('spinbutton').fill('83');
|
await page.getByRole('spinbutton').fill('83');
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ test.describe('III. Workout Tracking', () => {
|
|||||||
test('C. Active Session - Log Strength Set', async ({ page }) => {
|
test('C. Active Session - Log Strength Set', async ({ page }) => {
|
||||||
// 1. Start a 'Free Workout' session (ensure body weight is set).
|
// 1. Start a 'Free Workout' session (ensure body weight is set).
|
||||||
await page.goto('http://localhost:3000/');
|
await page.goto('http://localhost:3000/');
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.locator('input[type="email"]').fill('admin@gymflow.ai');
|
||||||
await page.locator('input[type="password"]').fill('admin1234');
|
await page.locator('input[type="password"]').fill('admin123');
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
await page.getByRole('spinbutton').fill('83');
|
await page.getByRole('spinbutton').fill('83');
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ test.describe('III. Workout Tracking', () => {
|
|||||||
test('C. Active Session - Plan Progression and Jump to Step', async ({ page }) => {
|
test('C. Active Session - Plan Progression and Jump to Step', async ({ page }) => {
|
||||||
// 1. Start a session from a workout plan with multiple steps.
|
// 1. Start a session from a workout plan with multiple steps.
|
||||||
await page.goto('http://localhost:3000/');
|
await page.goto('http://localhost:3000/');
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.locator('input[type="email"]').fill('admin@gymflow.ai');
|
||||||
await page.locator('input[type="password"]').fill('admin1234');
|
await page.locator('input[type="password"]').fill('admin123');
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
// Create a plan with multiple exercises
|
// Create a plan with multiple exercises
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ test.describe('III. Workout Tracking', () => {
|
|||||||
test('C. Active Session - Quit Session Without Saving', async ({ page }) => {
|
test('C. Active Session - Quit Session Without Saving', async ({ page }) => {
|
||||||
// 1. Start a 'Free Workout' session.
|
// 1. Start a 'Free Workout' session.
|
||||||
await page.goto('http://localhost:3000/');
|
await page.goto('http://localhost:3000/');
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.locator('input[type="email"]').fill('admin@gymflow.ai');
|
||||||
await page.locator('input[type="password"]').fill('admin1234');
|
await page.locator('input[type="password"]').fill('admin123');
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
await page.getByRole('spinbutton').fill('83');
|
await page.getByRole('spinbutton').fill('83');
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ test.describe('User Interface & Experience', () => {
|
|||||||
test('Adaptive GUI - Fluid Layout Responsiveness', async ({ page }) => {
|
test('Adaptive GUI - Fluid Layout Responsiveness', async ({ page }) => {
|
||||||
// 1. Log in as a regular user.
|
// 1. Log in as a regular user.
|
||||||
await page.goto('http://192.168.50.234:3000/');
|
await page.goto('http://192.168.50.234:3000/');
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.getByRole('textbox', { name: '0' }).first().fill('admin@gymflow.ai');
|
||||||
await page.locator('input[type="password"]').fill('admin');
|
await page.locator('input[type="password"]').fill('admin');
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ test.describe('User Interface & Experience', () => {
|
|||||||
test('Adaptive GUI - Responsive Charts in Stats', async ({ page }) => {
|
test('Adaptive GUI - Responsive Charts in Stats', async ({ page }) => {
|
||||||
// 1. Log in as a regular user.
|
// 1. Log in as a regular user.
|
||||||
await page.goto('http://192.168.50.234:3000/');
|
await page.goto('http://192.168.50.234:3000/');
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.getByRole('textbox', { name: '0' }).first().fill('admin@gymflow.ai');
|
||||||
await page.locator('input[type="password"]').fill('admin');
|
await page.locator('input[type="password"]').fill('admin');
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ test.describe('II. Workout Management', () => {
|
|||||||
test('B. Exercise Library - Create Custom Exercise (Bodyweight with %)', async ({ page }) => {
|
test('B. Exercise Library - Create Custom Exercise (Bodyweight with %)', async ({ page }) => {
|
||||||
// 1. Log in as a regular user.
|
// 1. Log in as a regular user.
|
||||||
await page.goto('http://localhost:3000/');
|
await page.goto('http://localhost:3000/');
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.locator('input[type="email"]').fill('admin@gymflow.ai');
|
||||||
await page.locator('input[type="password"]').fill('admin1234');
|
await page.locator('input[type="password"]').fill('admin123');
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
// 2. Navigate to the 'Profile' section.
|
// 2. Navigate to the 'Profile' section.
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ test.describe('II. Workout Management', () => {
|
|||||||
test('B. Exercise Library - Create Custom Exercise (Strength)', async ({ page }) => {
|
test('B. Exercise Library - Create Custom Exercise (Strength)', async ({ page }) => {
|
||||||
// 1. Log in as a regular user.
|
// 1. Log in as a regular user.
|
||||||
await page.goto('http://localhost:3000/');
|
await page.goto('http://localhost:3000/');
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.locator('input[type="email"]').fill('admin@gymflow.ai');
|
||||||
await page.locator('input[type="password"]').fill('admin1234');
|
await page.locator('input[type="password"]').fill('admin123');
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
// 2. Navigate to the 'Profile' section.
|
// 2. Navigate to the 'Profile' section.
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ test.describe('III. Workout Tracking', () => {
|
|||||||
test('B. Idle State - Body Weight Defaults from Profile', async ({ page }) => {
|
test('B. Idle State - Body Weight Defaults from Profile', async ({ page }) => {
|
||||||
// 1. Log in as a regular user with a weight set in their profile.
|
// 1. Log in as a regular user with a weight set in their profile.
|
||||||
await page.goto('http://localhost:3000/');
|
await page.goto('http://localhost:3000/');
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.locator('input[type="email"]').fill('admin@gymflow.ai');
|
||||||
await page.locator('input[type="password"]').fill('admin1234');
|
await page.locator('input[type="password"]').fill('admin123');
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
// Ensure the weight is set in the profile before navigating to tracker
|
// Ensure the weight is set in the profile before navigating to tracker
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ test.describe('III. Workout Tracking', () => {
|
|||||||
test('B. Idle State - Start Free Workout', async ({ page }) => {
|
test('B. Idle State - Start Free Workout', async ({ page }) => {
|
||||||
// 1. Log in as a regular user.
|
// 1. Log in as a regular user.
|
||||||
await page.goto('http://localhost:3000/');
|
await page.goto('http://localhost:3000/');
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.locator('input[type="email"]').fill('admin@gymflow.ai');
|
||||||
await page.locator('input[type="password"]').fill('admin1234');
|
await page.locator('input[type="password"]').fill('admin123');
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
// 2. Ensure the tracker is in the idle state. (This is the default view after login)
|
// 2. Ensure the tracker is in the idle state. (This is the default view after login)
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ test.describe('III. Workout Tracking', () => {
|
|||||||
test('B. Idle State - Start Quick Log', async ({ page }) => {
|
test('B. Idle State - Start Quick Log', async ({ page }) => {
|
||||||
// 1. Log in as a regular user.
|
// 1. Log in as a regular user.
|
||||||
await page.goto('http://localhost:3000/');
|
await page.goto('http://localhost:3000/');
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.locator('input[type="email"]').fill('admin@gymflow.ai');
|
||||||
await page.locator('input[type="password"]').fill('admin1234');
|
await page.locator('input[type="password"]').fill('admin123');
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
// 2. Ensure the tracker is in the idle state. (This is the default view after login)
|
// 2. Ensure the tracker is in the idle state. (This is the default view after login)
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ test.describe('I. Core & Authentication', () => {
|
|||||||
await page.goto('http://localhost:3000/');
|
await page.goto('http://localhost:3000/');
|
||||||
|
|
||||||
// Log in as admin to create a new user for testing first-time login
|
// Log in as admin to create a new user for testing first-time login
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.locator('input[type="email"]').fill('admin@gymflow.ai');
|
||||||
await page.locator('input[type="password"]').fill('admin1234');
|
await page.locator('input[type="password"]').fill('admin123');
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
// Navigate to profile and create a new user with a short password
|
// Navigate to profile and create a new user with a short password
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ test.describe('I. Core & Authentication', () => {
|
|||||||
await page.goto('http://localhost:3000/');
|
await page.goto('http://localhost:3000/');
|
||||||
|
|
||||||
// 2. Enter an invalid email or password.
|
// 2. Enter an invalid email or password.
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('invalid@gymflow.ai');
|
await page.locator('input[type="email"]').fill('invalid@gymflow.com');
|
||||||
await page.locator('input[type="password"]').fill('wrongpassword');
|
await page.locator('input[type="password"]').fill('wrongpassword');
|
||||||
|
|
||||||
// 3. Click the 'Login' button.
|
// 3. Click the 'Login' button.
|
||||||
|
|||||||
@@ -9,15 +9,16 @@ test.describe('I. Core & Authentication', () => {
|
|||||||
await page.goto('http://localhost:3000/');
|
await page.goto('http://localhost:3000/');
|
||||||
|
|
||||||
// 2. Enter a valid email in the email field.
|
// 2. Enter a valid email in the email field.
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.locator('input[type="email"]').fill('admin@gymflow.ai');
|
||||||
|
|
||||||
// 3. Enter a valid password in the password field.
|
// 3. Enter a valid password in the password field.
|
||||||
await page.locator('input[type="password"]').fill('admin1234');
|
await page.locator('input[type="password"]').fill('admin123');
|
||||||
|
|
||||||
// 4. Click the 'Login' button.
|
// 4. Click the 'Login' button.
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
// Wait for navigation to complete
|
// Wait for navigation to complete
|
||||||
|
await page.waitForURL('http://localhost:3000/tracker');
|
||||||
await page.waitForLoadState('networkidle');
|
await page.waitForLoadState('networkidle');
|
||||||
|
|
||||||
// Expected Results:
|
// Expected Results:
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ test.describe('IV. Data & Progress', () => {
|
|||||||
test('A. Session History - Delete Sporadic Set', async ({ page }) => {
|
test('A. Session History - Delete Sporadic Set', async ({ page }) => {
|
||||||
// 1. Log in as a regular user.
|
// 1. Log in as a regular user.
|
||||||
await page.goto('http://localhost:3000/');
|
await page.goto('http://localhost:3000/');
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.locator('input[type="email"]').fill('admin@gymflow.ai');
|
||||||
await page.locator('input[type="password"]').fill('admin1234');
|
await page.locator('input[type="password"]').fill('admin123');
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
// 2. Log at least one sporadic set.
|
// 2. Log at least one sporadic set.
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ test.describe('V. User & System Management', () => {
|
|||||||
test('A. User Profile - Change Password (Too Short)', async ({ page }) => {
|
test('A. User Profile - Change Password (Too Short)', async ({ page }) => {
|
||||||
// 1. Log in as a regular user.
|
// 1. Log in as a regular user.
|
||||||
await page.goto('http://localhost:3000/');
|
await page.goto('http://localhost:3000/');
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.locator('input[type="email"]').fill('admin@gymflow.ai');
|
||||||
await page.locator('input[type="password"]').fill('admin1234');
|
await page.locator('input[type="password"]').fill('admin123');
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
// 2. Navigate to the 'Profile' section.
|
// 2. Navigate to the 'Profile' section.
|
||||||
@@ -27,7 +27,7 @@ test.describe('V. User & System Management', () => {
|
|||||||
// (Implicitly tested by the fact that the error message is displayed and no success message)
|
// (Implicitly tested by the fact that the error message is displayed and no success message)
|
||||||
|
|
||||||
// Reset password to original for subsequent tests
|
// Reset password to original for subsequent tests
|
||||||
await page.getByRole('textbox', { name: 'New Password' }).fill('admin1234');
|
await page.getByRole('textbox', { name: 'New Password' }).fill('admin123');
|
||||||
await page.getByRole('button', { name: 'OK' }).click();
|
await page.getByRole('button', { name: 'OK' }).click();
|
||||||
await expect(page.getByText('Password changed')).toBeVisible();
|
await expect(page.getByText('Password changed')).toBeVisible();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ test.describe('V. User & System Management', () => {
|
|||||||
test('A. User Profile - Change Password', async ({ page }) => {
|
test('A. User Profile - Change Password', async ({ page }) => {
|
||||||
// 1. Log in as a regular user.
|
// 1. Log in as a regular user.
|
||||||
await page.goto('http://localhost:3000/');
|
await page.goto('http://localhost:3000/');
|
||||||
await page.getByRole('textbox', { name: 'user@gymflow.ai' }).fill('admin@gymflow.ai');
|
await page.locator('input[type="email"]').fill('admin@gymflow.ai');
|
||||||
await page.locator('input[type="password"]').fill('admin1234');
|
await page.locator('input[type="password"]').fill('admin123');
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
// 2. Navigate to the 'Profile' section.
|
// 2. Navigate to the 'Profile' section.
|
||||||
@@ -34,7 +34,7 @@ test.describe('V. User & System Management', () => {
|
|||||||
|
|
||||||
// Change password back to original for subsequent tests
|
// Change password back to original for subsequent tests
|
||||||
await page.getByRole('button', { name: 'Profile' }).click();
|
await page.getByRole('button', { name: 'Profile' }).click();
|
||||||
await page.getByRole('textbox', { name: 'New Password' }).fill('admin1234');
|
await page.getByRole('textbox', { name: 'New Password' }).fill('admin123');
|
||||||
await page.getByRole('button', { name: 'OK' }).click();
|
await page.getByRole('button', { name: 'OK' }).click();
|
||||||
await expect(page.getByText('Password changed')).toBeVisible();
|
await expect(page.getByText('Password changed')).toBeVisible();
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user