Fix selectors in full workflow test
This commit is contained in:
@@ -27,16 +27,15 @@ test.describe('Full Workflow', () => {
|
|||||||
await page.goto(`${BASE_URL}/projects`);
|
await page.goto(`${BASE_URL}/projects`);
|
||||||
await page.waitForLoadState('networkidle');
|
await page.waitForLoadState('networkidle');
|
||||||
|
|
||||||
// Click create project button
|
// Click create project button - it's "+ New"
|
||||||
await page.click('button:has-text("Create"), button:has-text("New Project")');
|
await page.click('button:has-text("+ New")');
|
||||||
await page.waitForSelector('form', { timeout: 5000 }).catch(() => {});
|
await page.waitForSelector('form.inline-form', { timeout: 5000 }).catch(() => {});
|
||||||
|
|
||||||
// Fill project form
|
// Fill project form
|
||||||
await page.fill('input[name="name"], label:has-text("Name") input', 'Test Project');
|
await page.fill('input[placeholder="Project name"]', 'Test Project');
|
||||||
await page.fill('input[name="description"], label:has-text("Description") input', 'Project for E2E testing');
|
|
||||||
|
|
||||||
// Submit project form
|
// Submit project form
|
||||||
await page.click('button[type="submit"], button:has-text("Create"), button:has-text("Save")');
|
await page.click('button:has-text("Create")');
|
||||||
|
|
||||||
// Wait for project to be created
|
// Wait for project to be created
|
||||||
await page.waitForTimeout(2000);
|
await page.waitForTimeout(2000);
|
||||||
@@ -47,70 +46,80 @@ test.describe('Full Workflow', () => {
|
|||||||
await page.goto(`${BASE_URL}/milestones`);
|
await page.goto(`${BASE_URL}/milestones`);
|
||||||
await page.waitForLoadState('networkidle');
|
await page.waitForLoadState('networkidle');
|
||||||
|
|
||||||
// Click create milestone button
|
// Wait for page to load
|
||||||
await page.click('button:has-text("Create"), button:has-text("New Milestone")');
|
await page.waitForSelector('h2:has-text("Milestones")', { timeout: 10000 });
|
||||||
|
|
||||||
|
// Click create milestone button - it's "+ NewMilestones"
|
||||||
|
await page.click('button:has-text("+ NewMilestones")');
|
||||||
await page.waitForSelector('form', { timeout: 5000 }).catch(() => {});
|
await page.waitForSelector('form', { timeout: 5000 }).catch(() => {});
|
||||||
|
|
||||||
// Fill milestone form
|
// Fill milestone form
|
||||||
await page.fill('input[name="title"], label:has-text("Title") input', 'Test Milestone');
|
await page.fill('input[placeholder="Title"]', 'Test Milestone');
|
||||||
await page.fill('textarea[name="description"], label:has-text("Description") textarea', 'Milestone for E2E testing');
|
await page.fill('textarea[placeholder="Description"]', 'Milestone for E2E testing');
|
||||||
|
|
||||||
// Submit milestone form
|
// Submit milestone form
|
||||||
await page.click('button[type="submit"], button:has-text("Create"), button:has-text("Save")');
|
await page.click('button:has-text("Create")');
|
||||||
|
|
||||||
// Wait for milestone to be created
|
// Wait for milestone to be created
|
||||||
await page.waitForTimeout(2000);
|
await page.waitForTimeout(2000);
|
||||||
console.log('✅ Milestone created');
|
console.log('✅ Milestone created');
|
||||||
|
|
||||||
// Step 4: Create Task (under milestone)
|
// Step 4: Create Task (issue type)
|
||||||
console.log('📝 Creating task...');
|
console.log('📝 Creating task...');
|
||||||
await page.goto(`${BASE_URL}/issues/new`);
|
await page.goto(`${BASE_URL}/issues/new`);
|
||||||
await page.waitForLoadState('networkidle');
|
await page.waitForLoadState('networkidle');
|
||||||
|
|
||||||
// Select issue type: Task
|
// Wait for form to load
|
||||||
await page.selectOption('select[name="issue_type"], select:has-text("Type")', 'task');
|
await page.waitForSelector('select[name="issue_type"]', { timeout: 10000 });
|
||||||
await page.fill('input[name="title"], label:has-text("Title") input', 'Test Task');
|
|
||||||
await page.fill('textarea[name="description"], label:has-text("Description") textarea', 'Task for E2E testing');
|
|
||||||
|
|
||||||
await page.click('button[type="submit"], button:has-text("Create"), button:has-text("Save")');
|
// Select issue type: Task
|
||||||
|
await page.selectOption('select[name="issue_type"]', 'task');
|
||||||
|
await page.fill('input[placeholder="Title"]', 'Test Task');
|
||||||
|
await page.fill('textarea[placeholder="Description"]', 'Task for E2E testing');
|
||||||
|
|
||||||
|
await page.click('button:has-text("Create")');
|
||||||
await page.waitForTimeout(2000);
|
await page.waitForTimeout(2000);
|
||||||
console.log('✅ Task created');
|
console.log('✅ Task created');
|
||||||
|
|
||||||
// Step 5: Create Meeting (under milestone)
|
// Step 5: Create Meeting (issue type)
|
||||||
console.log('📅 Creating meeting...');
|
console.log('📅 Creating meeting...');
|
||||||
await page.goto(`${BASE_URL}/issues/new`);
|
await page.goto(`${BASE_URL}/issues/new`);
|
||||||
await page.waitForLoadState('networkidle');
|
await page.waitForLoadState('networkidle');
|
||||||
|
|
||||||
// Select issue type: Meeting
|
await page.waitForSelector('select[name="issue_type"]', { timeout: 10000 });
|
||||||
await page.selectOption('select[name="issue_type"], select:has-text("Type")', 'meeting');
|
|
||||||
await page.selectOption('select[name="issue_subtype"], select:has-text("Subtype")', 'recap');
|
|
||||||
await page.fill('input[name="title"], label:has-text("Title") input', 'Test Meeting');
|
|
||||||
await page.fill('textarea[name="description"], label:has-text("Description") textarea', 'Meeting for E2E testing');
|
|
||||||
|
|
||||||
await page.click('button[type="submit"], button:has-text("Create"), button:has-text("Save")');
|
// Select issue type: Meeting
|
||||||
|
await page.selectOption('select[name="issue_type"]', 'meeting');
|
||||||
|
await page.selectOption('select[name="issue_subtype"]', 'recap');
|
||||||
|
await page.fill('input[placeholder="Title"]', 'Test Meeting');
|
||||||
|
await page.fill('textarea[placeholder="Description"]', 'Meeting for E2E testing');
|
||||||
|
|
||||||
|
await page.click('button:has-text("Create")');
|
||||||
await page.waitForTimeout(2000);
|
await page.waitForTimeout(2000);
|
||||||
console.log('✅ Meeting created');
|
console.log('✅ Meeting created');
|
||||||
|
|
||||||
// Step 6: Create Support (under milestone)
|
// Step 6: Create Support (issue type)
|
||||||
console.log('🆘 Creating support...');
|
console.log('🆘 Creating support...');
|
||||||
await page.goto(`${BASE_URL}/issues/new`);
|
await page.goto(`${BASE_URL}/issues/new`);
|
||||||
await page.waitForLoadState('networkidle');
|
await page.waitForLoadState('networkidle');
|
||||||
|
|
||||||
// Select issue type: Support
|
await page.waitForSelector('select[name="issue_type"]', { timeout: 10000 });
|
||||||
await page.selectOption('select[name="issue_type"], select:has-text("Type")', 'support');
|
|
||||||
await page.selectOption('select[name="issue_subtype"], select:has-text("Subtype")', 'information');
|
|
||||||
await page.fill('input[name="title"], label:has-text("Title") input', 'Test Support');
|
|
||||||
await page.fill('textarea[name="description"], label:has-text("Description") textarea', 'Support request for E2E testing');
|
|
||||||
|
|
||||||
await page.click('button[type="submit"], button:has-text("Create"), button:has-text("Save")');
|
// Select issue type: Support
|
||||||
|
await page.selectOption('select[name="issue_type"]', 'support');
|
||||||
|
await page.selectOption('select[name="issue_subtype"]', 'information');
|
||||||
|
await page.fill('input[placeholder="Title"]', 'Test Support');
|
||||||
|
await page.fill('textarea[placeholder="Description"]', 'Support request for E2E testing');
|
||||||
|
|
||||||
|
await page.click('button:has-text("Create")');
|
||||||
await page.waitForTimeout(2000);
|
await page.waitForTimeout(2000);
|
||||||
console.log('✅ Support created');
|
console.log('✅ Support created');
|
||||||
|
|
||||||
// Step 7: Logout
|
// Step 7: Logout
|
||||||
console.log('🚪 Logging out...');
|
console.log('🚪 Logging out...');
|
||||||
|
|
||||||
// Click logout button in sidebar or header
|
// Click logout button in sidebar
|
||||||
await page.click('button:has-text("Logout"), button:has-text("Sign Out")');
|
await page.click('button:has-text("Logout")');
|
||||||
await page.waitForURL(`${BASE_URL}/login`, { timeout: 10000 }).catch(() => {});
|
await page.waitForURL(`${BASE_URL}/login`, { timeout: 10000 }).catch(() => {});
|
||||||
console.log('✅ Logged out');
|
console.log('✅ Logged out');
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user