Fix full workflow test: select project filter for milestone (proper escaping)

This commit is contained in:
Zhi
2026-03-14 08:56:41 +00:00
parent 1ac401908f
commit 6d15744735

View File

@@ -10,7 +10,7 @@ test.describe('Full Workflow', () => {
test('login -> create project -> create milestone -> create task/meeting/support -> logout', async ({ page }) => {
// Step 1: Login
console.log('🔐 Logging in...');
await page.goto();
await page.goto(`${BASE_URL}/login`);
await page.waitForLoadState('networkidle');
await page.fill('input[type="text"], input[name="username"]', ADMIN_USERNAME);
@@ -18,13 +18,13 @@ test.describe('Full Workflow', () => {
await page.click('button[type="submit"], button:has-text("Sign in")');
// Wait for navigation
await page.waitForURL(, { timeout: 10000 });
await page.waitForURL(`${BASE_URL}/**`, { timeout: 10000 });
await page.waitForLoadState('networkidle');
console.log('✅ Logged in');
// Step 2: Create Project
console.log('📁 Creating project...');
await page.goto();
await page.goto(`${BASE_URL}/projects`);
await page.waitForLoadState('networkidle');
// Click create project button - it's "+ New"
@@ -32,7 +32,7 @@ test.describe('Full Workflow', () => {
await page.waitForSelector('form.inline-form', { timeout: 5000 });
// Fill project form
const projectName = ;
const projectName = 'Test Project ' + Date.now();
await page.fill('input[placeholder="Project name"]', projectName);
await page.fill('textarea[placeholder="Description"]', 'Project for E2E testing');
@@ -40,12 +40,12 @@ test.describe('Full Workflow', () => {
await page.click('button:has-text("Create")');
// Wait for project to be created (and appear in the grid)
await page.waitForSelector(, { timeout: 10000 });
await page.waitForSelector(`.project-card h3:has-text("${projectName}")`, { timeout: 10000 });
console.log('✅ Project created');
// Step 3: Create Milestone
console.log('🎯 Creating milestone...');
await page.goto();
await page.goto(`${BASE_URL}/milestones`);
await page.waitForLoadState('networkidle');
// Wait for page to load
@@ -61,7 +61,7 @@ test.describe('Full Workflow', () => {
await page.waitForSelector('form', { timeout: 5000 });
// Fill milestone form
const milestoneTitle = ;
const milestoneTitle = 'Test Milestone ' + Date.now();
await page.fill('input[placeholder="Title"]', milestoneTitle);
await page.fill('textarea[placeholder="Description"]', 'Milestone for E2E testing');
@@ -69,12 +69,12 @@ test.describe('Full Workflow', () => {
await page.click('button:has-text("Create")');
// Wait for milestone to be created
await page.waitForSelector(, { timeout: 10000 });
await page.waitForSelector(`.milestone-card h3:has-text("${milestoneTitle}")`, { timeout: 10000 });
console.log('✅ Milestone created');
// Step 4: Create Task (under milestone)
console.log('📝 Creating task...');
await page.goto();
await page.goto(`${BASE_URL}/issues/new`);
await page.waitForLoadState('networkidle');
// Wait for form to load
@@ -91,7 +91,7 @@ test.describe('Full Workflow', () => {
// Step 5: Create Meeting (under milestone)
console.log('📅 Creating meeting...');
await page.goto();
await page.goto(`${BASE_URL}/issues/new`);
await page.waitForLoadState('networkidle');
await page.waitForSelector('select[name="issue_type"]', { timeout: 10000 });
@@ -108,7 +108,7 @@ test.describe('Full Workflow', () => {
// Step 6: Create Support (under milestone)
console.log('🆘 Creating support...');
await page.goto();
await page.goto(`${BASE_URL}/issues/new`);
await page.waitForLoadState('networkidle');
await page.waitForSelector('select[name="issue_type"]', { timeout: 10000 });
@@ -128,7 +128,7 @@ test.describe('Full Workflow', () => {
// Click logout button in sidebar
await page.click('button:has-text("Logout")');
await page.waitForURL(, { timeout: 10000 });
await page.waitForURL(`${BASE_URL}/login`, { timeout: 10000 });
console.log('✅ Logged out');
// Verify we're on login page