69 lines
2.6 KiB
TypeScript
69 lines
2.6 KiB
TypeScript
import { test, expect } from './fixtures';
|
|
|
|
test('can enable unilateral flag for existing exercise', async ({ page, createUniqueUser }) => {
|
|
console.log('START: Test started');
|
|
const user = await createUniqueUser();
|
|
console.log('USER created: ' + user.email);
|
|
|
|
// 1. Login
|
|
console.log('Navigating to login...');
|
|
await page.goto('http://localhost:3000/');
|
|
console.log('Filling login form...');
|
|
await page.fill('input[type="email"]', user.email);
|
|
await page.fill('input[type="password"]', user.password);
|
|
await page.click('button:has-text("Login")');
|
|
console.log('Waiting for Tracker...');
|
|
await expect(page.getByText('Tracker')).toBeVisible();
|
|
|
|
// 2. Create a standard exercise via Profile
|
|
console.log('Navigating to Profile...');
|
|
await page.getByText('Profile').click();
|
|
console.log('Clicking Manage Exercises...');
|
|
await page.getByRole('button', { name: 'Manage Exercises' }).click();
|
|
|
|
// Open create modal
|
|
console.log('Clicking New Exercise...');
|
|
await page.getByRole('button', { name: 'New Exercise' }).click();
|
|
|
|
const exName = `Test Uni ${Date.now()}`;
|
|
console.log('Creating exercise:', exName);
|
|
await page.getByLabel('Name').fill(exName);
|
|
await page.getByRole('button', { name: 'Create' }).click();
|
|
|
|
// Verify it exists in list
|
|
console.log('Verifying creation...');
|
|
await expect(page.getByText(exName)).toBeVisible();
|
|
|
|
// 3. Edit exercise to be Unilateral
|
|
console.log('Finding row to edit...');
|
|
const row = page.locator('div.flex.justify-between.items-center').filter({ hasText: exName }).first();
|
|
console.log('Clicking Edit...');
|
|
await row.getByRole('button', { name: 'Edit Exercise' }).click();
|
|
|
|
// Check the Unilateral checkbox
|
|
console.log('Checking Unilateral...');
|
|
await page.getByLabel('Unilateral exercise').check();
|
|
await page.getByRole('button', { name: 'Save' }).click();
|
|
|
|
// Verify "Unilateral" tag appears in the list
|
|
console.log('Verifying Unilateral tag...');
|
|
await expect(row).toContainText('Unilateral');
|
|
|
|
// 4. Verify in Tracker
|
|
console.log('Navigating to Tracker...');
|
|
await page.getByText('Tracker').click();
|
|
|
|
// Select the exercise
|
|
console.log('Selecting exercise...');
|
|
await page.getByLabel('Select Exercise').fill(exName);
|
|
await page.getByRole('button', { name: exName }).click();
|
|
|
|
// Verify L/A/R buttons appear
|
|
console.log('Checking buttons...');
|
|
await expect(page.getByTitle('Left')).toBeVisible();
|
|
await expect(page.getByTitle('Right')).toBeVisible();
|
|
await expect(page.getByTitle('Alternately')).toBeVisible();
|
|
|
|
console.log('DONE: Test finished successfully');
|
|
});
|