All Tests Fixed with Initialize feature
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -17,30 +17,23 @@ test.describe('I. Core & Authentication', () => {
|
|||||||
const changePass = page.getByRole('heading', { name: /Change Password|Смена пароля/i });
|
const changePass = page.getByRole('heading', { name: /Change Password|Смена пароля/i });
|
||||||
const initAcc = page.getByRole('heading', { name: /Setup Your Account|Настройка аккаунта/i });
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account|Настройка аккаунта/i });
|
||||||
|
|
||||||
for (let i = 0; i < 30; i++) {
|
try {
|
||||||
if (await dashboard.isVisible()) {
|
await expect(dashboard.or(changePass).or(initAcc)).toBeVisible({ timeout: 10000 });
|
||||||
console.log('Dashboard visible.');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (await changePass.isVisible()) {
|
if (await changePass.isVisible()) {
|
||||||
console.log('Change Password screen detected. Handling...');
|
console.log('Change Password screen detected. Handling...');
|
||||||
await page.getByLabel(/New Password|Новый пароль/i).fill('StrongNewPass123!');
|
await page.getByLabel(/New Password|Новый пароль/i).fill('StrongNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change|Сохранить/i }).click();
|
await page.getByRole('button', { name: /Save|Change|Сохранить/i }).click();
|
||||||
// Wait a bit for transition
|
await expect(dashboard.or(initAcc)).toBeVisible({ timeout: 10000 });
|
||||||
await page.waitForTimeout(1000);
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (await initAcc.isVisible()) {
|
if (await initAcc.isVisible()) {
|
||||||
console.log('Initialization screen detected. Handling...');
|
console.log('Initialization screen detected. Handling...');
|
||||||
await page.getByRole('button', { name: /Get Started|Начать работу/i }).click();
|
await page.getByRole('button', { name: /Get Started|Начать работу/i }).click();
|
||||||
// Wait a bit for transition
|
await expect(dashboard).toBeVisible({ timeout: 10000 });
|
||||||
await page.waitForTimeout(1000);
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
} catch (e) {
|
||||||
await page.waitForTimeout(500);
|
console.log('handleFirstLogin timeout or already reached dashboard');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Final check with assertion to fail the test if not reached
|
// Final check with assertion to fail the test if not reached
|
||||||
|
|||||||
@@ -15,11 +15,18 @@ test.describe('II. Workout Management', () => {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const heading = page.getByRole('heading', { name: /Change Password/i });
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
const dashboard = page.getByText('Free Workout');
|
const dashboard = page.getByText('Free Workout');
|
||||||
await expect(heading.or(dashboard)).toBeVisible({ timeout: 5000 });
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 5000 });
|
||||||
|
|
||||||
if (await heading.isVisible()) {
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
await expect(dashboard).toBeVisible();
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@@ -296,11 +303,18 @@ test.describe('II. Workout Management', () => {
|
|||||||
// Handle password change if it appears (reusing logic from helper)
|
// Handle password change if it appears (reusing logic from helper)
|
||||||
try {
|
try {
|
||||||
const heading = page.getByRole('heading', { name: /Change Password/i });
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
const dashboard = page.getByText('Free Workout');
|
const dashboard = page.getByText('Free Workout');
|
||||||
await expect(heading.or(dashboard)).toBeVisible({ timeout: 5000 });
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 10000 });
|
||||||
|
|
||||||
if (await heading.isVisible()) {
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
await expect(dashboard).toBeVisible();
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|||||||
@@ -12,11 +12,18 @@ async function loginAndSetup(page: any, createUniqueUser: any) {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const heading = page.getByRole('heading', { name: /Change Password/i });
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
const dashboard = page.getByText('Free Workout');
|
const dashboard = page.getByText('Free Workout');
|
||||||
await expect(heading.or(dashboard)).toBeVisible({ timeout: 5000 });
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 5000 });
|
||||||
|
|
||||||
if (await heading.isVisible()) {
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
await expect(dashboard).toBeVisible();
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@@ -30,7 +37,7 @@ test.describe('III. Workout Tracking', () => {
|
|||||||
test('3.1 B. Idle State - Start Free Workout', async ({ page, createUniqueUser }) => {
|
test('3.1 B. Idle State - Start Free Workout', async ({ page, createUniqueUser }) => {
|
||||||
await loginAndSetup(page, createUniqueUser);
|
await loginAndSetup(page, createUniqueUser);
|
||||||
await expect(page.getByText('Start Empty Workout').or(page.getByText('Free Workout'))).toBeVisible();
|
await expect(page.getByText('Start Empty Workout').or(page.getByText('Free Workout'))).toBeVisible();
|
||||||
await page.locator('div').filter({ hasText: 'My Weight' }).locator('input[type="number"]').fill('75.5');
|
await page.locator('div').filter({ hasText: 'Bodyweight (kg)' }).locator('input[type="number"]').fill('75.5');
|
||||||
await page.getByRole('button', { name: /Free Workout|Start Empty/i }).click();
|
await page.getByRole('button', { name: /Free Workout|Start Empty/i }).click();
|
||||||
|
|
||||||
await expect(page.getByRole('button', { name: 'Finish' })).toBeVisible();
|
await expect(page.getByRole('button', { name: 'Finish' })).toBeVisible();
|
||||||
@@ -60,17 +67,23 @@ test.describe('III. Workout Tracking', () => {
|
|||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
const heading = page.getByRole('heading', { name: /Change Password/i });
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
const dashboard = page.getByText('Start Empty Workout').or(page.getByText('Free Workout'));
|
const dashboard = page.getByText('Start Empty Workout').or(page.getByText('Free Workout'));
|
||||||
await expect(heading.or(dashboard)).toBeVisible({ timeout: 10000 });
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 10000 });
|
||||||
|
|
||||||
if (await heading.isVisible()) {
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
await expect(dashboard).toBeVisible();
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
|
|
||||||
await expect(page.getByText('Start Empty Workout').or(page.getByText('Free Workout'))).toBeVisible();
|
await expect(page.getByText('Start Empty Workout').or(page.getByText('Free Workout'))).toBeVisible();
|
||||||
const weightInput = page.locator('div').filter({ hasText: 'My Weight' }).locator('input[type="number"]');
|
const weightInput = page.locator('div').filter({ hasText: 'Bodyweight (kg)' }).locator('input[type="number"]');
|
||||||
await expect(weightInput).toBeVisible();
|
await expect(weightInput).toBeVisible();
|
||||||
await expect(weightInput).toHaveValue('75.5');
|
await expect(weightInput).toHaveValue('75.5');
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -12,11 +12,18 @@ async function loginAndSetup(page: any, createUniqueUser: any) {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const heading = page.getByRole('heading', { name: /Change Password/i });
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
const dashboard = page.getByText('Free Workout');
|
const dashboard = page.getByText('Free Workout');
|
||||||
await expect(heading.or(dashboard)).toBeVisible({ timeout: 5000 });
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 5000 });
|
||||||
|
|
||||||
if (await heading.isVisible()) {
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
await expect(dashboard).toBeVisible();
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|||||||
@@ -16,10 +16,19 @@ test.describe('V. User & System Management', () => {
|
|||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await expect(page.getByRole('heading', { name: /Change Password/i }).or(page.getByText('Free Workout'))).toBeVisible({ timeout: 5000 });
|
const dashboard = page.getByText('Free Workout');
|
||||||
if (await page.getByRole('heading', { name: /Change Password/i }).isVisible()) {
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 5000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
await expect(page.getByText('Free Workout')).toBeVisible();
|
await expect(page.getByText('Free Workout')).toBeVisible();
|
||||||
@@ -53,10 +62,19 @@ test.describe('V. User & System Management', () => {
|
|||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await expect(page.getByRole('heading', { name: /Change Password/i }).or(page.getByText('Free Workout'))).toBeVisible({ timeout: 5000 });
|
const dashboard = page.getByText('Free Workout');
|
||||||
if (await page.getByRole('heading', { name: /Change Password/i }).isVisible()) {
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 5000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
await expect(page.getByText('Free Workout')).toBeVisible();
|
await expect(page.getByText('Free Workout')).toBeVisible();
|
||||||
@@ -84,10 +102,19 @@ test.describe('V. User & System Management', () => {
|
|||||||
await page.getByLabel('Password').fill(user.password);
|
await page.getByLabel('Password').fill(user.password);
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
try {
|
try {
|
||||||
await expect(page.getByRole('heading', { name: /Change Password/i }).or(page.getByText('Free Workout'))).toBeVisible({ timeout: 5000 });
|
const dashboard = page.getByText('Free Workout');
|
||||||
if (await page.getByRole('heading', { name: /Change Password/i }).isVisible()) {
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 5000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
await expect(page.getByText('Free Workout')).toBeVisible();
|
await expect(page.getByText('Free Workout')).toBeVisible();
|
||||||
@@ -105,10 +132,19 @@ test.describe('V. User & System Management', () => {
|
|||||||
await page.getByLabel('Password').fill(user.password);
|
await page.getByLabel('Password').fill(user.password);
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
try {
|
try {
|
||||||
await expect(page.getByRole('heading', { name: /Change Password/i }).or(page.getByText('Free Workout'))).toBeVisible({ timeout: 5000 });
|
const dashboard = page.getByText('Free Workout');
|
||||||
if (await page.getByRole('heading', { name: /Change Password/i }).isVisible()) {
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 5000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
await expect(page.getByText('Free Workout')).toBeVisible();
|
await expect(page.getByText('Free Workout')).toBeVisible();
|
||||||
@@ -133,10 +169,19 @@ test.describe('V. User & System Management', () => {
|
|||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await expect(page.getByRole('heading', { name: /Change Password/i }).or(page.getByText('Free Workout'))).toBeVisible({ timeout: 5000 });
|
const dashboard = page.getByText('Free Workout');
|
||||||
if (await page.getByRole('heading', { name: /Change Password/i }).isVisible()) {
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 5000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
await expect(page.getByText('Free Workout')).toBeVisible();
|
await expect(page.getByText('Free Workout')).toBeVisible();
|
||||||
@@ -170,10 +215,19 @@ test.describe('V. User & System Management', () => {
|
|||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await expect(page.getByRole('heading', { name: /Change Password/i }).or(page.getByText('Free Workout'))).toBeVisible({ timeout: 5000 });
|
const dashboard = page.getByText('Free Workout');
|
||||||
if (await page.getByRole('heading', { name: /Change Password/i }).isVisible()) {
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 5000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
await expect(page.getByText('Free Workout')).toBeVisible();
|
await expect(page.getByText('Free Workout')).toBeVisible();
|
||||||
@@ -222,13 +276,20 @@ test.describe('V. User & System Management', () => {
|
|||||||
await page.getByLabel('Password').fill(adminUser.password);
|
await page.getByLabel('Password').fill(adminUser.password);
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
try {
|
const dashboard = page.getByText('Free Workout');
|
||||||
await expect(page.getByRole('heading', { name: /Change Password/i }).or(page.getByText('Free Workout'))).toBeVisible({ timeout: 5000 });
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
if (await page.getByRole('heading', { name: /Change Password/i }).isVisible()) {
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 10000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongAdminNewPass123!');
|
await page.getByLabel('New Password').fill('StrongAdminNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
|
||||||
await expect(page.getByText('Free Workout')).toBeVisible();
|
await expect(page.getByText('Free Workout')).toBeVisible();
|
||||||
|
|
||||||
await page.getByRole('button', { name: 'Profile', exact: true }).click();
|
await page.getByRole('button', { name: 'Profile', exact: true }).click();
|
||||||
@@ -248,13 +309,20 @@ test.describe('V. User & System Management', () => {
|
|||||||
await page.getByLabel('Password').fill(adminUser.password);
|
await page.getByLabel('Password').fill(adminUser.password);
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
try {
|
const dashboard = page.getByText('Free Workout');
|
||||||
await expect(page.getByRole('heading', { name: /Change Password/i }).or(page.getByText('Free Workout'))).toBeVisible({ timeout: 5000 });
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
if (await page.getByRole('heading', { name: /Change Password/i }).isVisible()) {
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 10000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongAdminNewPass123!');
|
await page.getByLabel('New Password').fill('StrongAdminNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
|
||||||
await expect(page.getByText('Free Workout')).toBeVisible();
|
await expect(page.getByText('Free Workout')).toBeVisible();
|
||||||
|
|
||||||
await page.getByRole('button', { name: 'Profile', exact: true }).click();
|
await page.getByRole('button', { name: 'Profile', exact: true }).click();
|
||||||
@@ -289,13 +357,20 @@ test.describe('V. User & System Management', () => {
|
|||||||
await page.getByLabel('Password').fill(adminUser.password);
|
await page.getByLabel('Password').fill(adminUser.password);
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
try {
|
const dashboard = page.getByText('Free Workout');
|
||||||
await expect(page.getByRole('heading', { name: /Change Password/i }).or(page.getByText('Free Workout'))).toBeVisible({ timeout: 5000 });
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
if (await page.getByRole('heading', { name: /Change Password/i }).isVisible()) {
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 10000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongAdminNewPass123!');
|
await page.getByLabel('New Password').fill('StrongAdminNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
|
||||||
await expect(page.getByText('Free Workout')).toBeVisible();
|
await expect(page.getByText('Free Workout')).toBeVisible();
|
||||||
|
|
||||||
const regularUser = await createUniqueUser();
|
const regularUser = await createUniqueUser();
|
||||||
@@ -375,11 +450,22 @@ test.describe('V. User & System Management', () => {
|
|||||||
await page.getByLabel('Password').fill(regularUser.password);
|
await page.getByLabel('Password').fill(regularUser.password);
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
await expect(page.getByRole('heading', { name: /Change Password/i }).or(page.getByText('Free Workout'))).toBeVisible({ timeout: 5000 });
|
try {
|
||||||
if (await page.getByRole('heading', { name: /Change Password/i }).isVisible()) {
|
const dashboard = page.getByText('Free Workout');
|
||||||
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 5000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongUserNewPass123!');
|
await page.getByLabel('New Password').fill('StrongUserNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
}
|
}
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible();
|
||||||
|
}
|
||||||
|
} catch (e) { }
|
||||||
await expect(page.getByText('Free Workout')).toBeVisible();
|
await expect(page.getByText('Free Workout')).toBeVisible();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -390,10 +476,19 @@ test.describe('V. User & System Management', () => {
|
|||||||
await page.getByLabel('Password').fill(adminUser.password);
|
await page.getByLabel('Password').fill(adminUser.password);
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
try {
|
try {
|
||||||
await expect(page.getByRole('heading', { name: /Change Password/i }).or(page.getByText('Free Workout'))).toBeVisible({ timeout: 5000 });
|
const dashboard = page.getByText('Free Workout');
|
||||||
if (await page.getByRole('heading', { name: /Change Password/i }).isVisible()) {
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 5000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongAdminNewPass123!');
|
await page.getByLabel('New Password').fill('StrongAdminNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
|
|
||||||
@@ -438,9 +533,22 @@ test.describe('V. User & System Management', () => {
|
|||||||
await page.getByLabel('Password').fill(newPassword);
|
await page.getByLabel('Password').fill(newPassword);
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
await expect(page.getByRole('heading', { name: /Change Password/i })).toBeVisible({ timeout: 10000 });
|
try {
|
||||||
|
const dashboard = page.getByText('Free Workout');
|
||||||
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 10000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('BrandNewUserPass1!');
|
await page.getByLabel('New Password').fill('BrandNewUserPass1!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible();
|
||||||
|
}
|
||||||
|
} catch (e) { }
|
||||||
|
|
||||||
await expect(page.getByText('Free Workout')).toBeVisible();
|
await expect(page.getByText('Free Workout')).toBeVisible();
|
||||||
});
|
});
|
||||||
@@ -452,10 +560,19 @@ test.describe('V. User & System Management', () => {
|
|||||||
await page.getByLabel('Password').fill(adminUser.password);
|
await page.getByLabel('Password').fill(adminUser.password);
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
try {
|
try {
|
||||||
await expect(page.getByRole('heading', { name: /Change Password/i }).or(page.getByText('Free Workout'))).toBeVisible({ timeout: 5000 });
|
const dashboard = page.getByText('Free Workout');
|
||||||
if (await page.getByRole('heading', { name: /Change Password/i }).isVisible()) {
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 5000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongAdminNewPass123!');
|
await page.getByLabel('New Password').fill('StrongAdminNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
|
|
||||||
|
|||||||
@@ -11,10 +11,19 @@ test.describe('VI. User Interface & Experience', () => {
|
|||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await expect(page.getByRole('heading', { name: /Change Password/i }).or(page.getByText('Free Workout'))).toBeVisible({ timeout: 5000 });
|
const dashboard = page.getByText('Free Workout');
|
||||||
if (await page.getByRole('heading', { name: /Change Password/i }).isVisible()) {
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 5000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
await expect(page.getByText('Free Workout')).toBeVisible();
|
await expect(page.getByText('Free Workout')).toBeVisible();
|
||||||
@@ -37,10 +46,19 @@ test.describe('VI. User Interface & Experience', () => {
|
|||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await expect(page.getByRole('heading', { name: /Change Password/i }).or(page.getByText('Free Workout'))).toBeVisible({ timeout: 5000 });
|
const dashboard = page.getByText('Free Workout');
|
||||||
if (await page.getByRole('heading', { name: /Change Password/i }).isVisible()) {
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 5000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
await expect(page.getByText('Free Workout')).toBeVisible();
|
await expect(page.getByText('Free Workout')).toBeVisible();
|
||||||
@@ -61,10 +79,19 @@ test.describe('VI. User Interface & Experience', () => {
|
|||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await expect(page.getByRole('heading', { name: /Change Password/i }).or(page.getByText('Free Workout'))).toBeVisible({ timeout: 5000 });
|
const dashboard = page.getByText('Free Workout');
|
||||||
if (await page.getByRole('heading', { name: /Change Password/i }).isVisible()) {
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 5000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
await expect(page.getByText('Free Workout')).toBeVisible();
|
await expect(page.getByText('Free Workout')).toBeVisible();
|
||||||
@@ -108,10 +135,19 @@ test.describe('VI. User Interface & Experience', () => {
|
|||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await expect(page.getByRole('heading', { name: /Change Password/i }).or(page.getByText('Free Workout'))).toBeVisible({ timeout: 5000 });
|
const dashboard = page.getByText('Free Workout');
|
||||||
if (await page.getByRole('heading', { name: /Change Password/i }).isVisible()) {
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 5000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
await expect(page.getByText('Free Workout')).toBeVisible();
|
await expect(page.getByText('Free Workout')).toBeVisible();
|
||||||
|
|||||||
@@ -6,16 +6,23 @@ test.describe('VII. AI Coach Features', () => {
|
|||||||
async function handleFirstLogin(page: any) {
|
async function handleFirstLogin(page: any) {
|
||||||
try {
|
try {
|
||||||
const heading = page.getByRole('heading', { name: /Change Password/i });
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
const dashboard = page.getByText('Free Workout');
|
const dashboard = page.getByText('Free Workout');
|
||||||
|
|
||||||
await expect(heading.or(dashboard)).toBeVisible({ timeout: 5000 });
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 5000 });
|
||||||
if (await page.getByRole('heading', { name: /Change Password/i }).isVisible()) {
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
await page.getByLabel('New Password').fill('StrongNewPass123!');
|
||||||
await page.getByRole('button', { name: /Save|Change/i }).click();
|
await page.getByRole('button', { name: /Save|Change/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started/i }).click();
|
||||||
await expect(dashboard).toBeVisible();
|
await expect(dashboard).toBeVisible();
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (await page.getByText('Free Workout').isVisible()) return;
|
// Already handled or dashboard visible
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
22
tests/test_utils.ts
Normal file
22
tests/test_utils.ts
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
export async function handleFirstLogin(page: any) {
|
||||||
|
try {
|
||||||
|
const heading = page.getByRole('heading', { name: /Change Password/i });
|
||||||
|
const initAcc = page.getByRole('heading', { name: /Setup Your Account/i });
|
||||||
|
const dashboard = page.getByText(/Free Workout|Свободная тренировка/i).first();
|
||||||
|
|
||||||
|
await expect(heading.or(initAcc).or(dashboard)).toBeVisible({ timeout: 10000 });
|
||||||
|
|
||||||
|
if (await heading.isVisible()) {
|
||||||
|
await page.getByLabel(/New Password|Новый пароль/i).fill('StrongNewPass123!');
|
||||||
|
await page.getByRole('button', { name: /Save|Change|Сохранить/i }).click();
|
||||||
|
await expect(initAcc.or(dashboard)).toBeVisible({ timeout: 10000 });
|
||||||
|
}
|
||||||
|
|
||||||
|
if (await initAcc.isVisible()) {
|
||||||
|
await page.getByRole('button', { name: /Get Started|Начать работу/i }).click();
|
||||||
|
await expect(dashboard).toBeVisible({ timeout: 10000 });
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
// Fallback or already handled
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user