fix: mount /apps and docker socket in PR workflow build-and-deploy-ci job #41
@@ -74,7 +74,7 @@ test.describe.serial('Account Lifecycle Acceptance Test', () => {
|
||||
await page.waitForURL(/\/players\/\d+\/profile/, { timeout: 10000 });
|
||||
|
||||
// Wait a moment for the user to be saved to database
|
||||
await page.waitForTimeout(1000);
|
||||
await page.waitForTimeout(200);
|
||||
|
||||
// Verify user was created in database
|
||||
const user = await prisma.user.findUnique({
|
||||
|
||||
@@ -315,7 +315,7 @@ ${tournament.id},2,1,${player1.name},${player3.name},10,${player2.name},${player
|
||||
await page.click('button[type="submit"]');
|
||||
|
||||
// Wait for upload to complete
|
||||
await page.waitForTimeout(3000);
|
||||
await page.waitForTimeout(1000);
|
||||
|
||||
// Check for any error messages
|
||||
const uploadContentAfter = await page.content();
|
||||
@@ -328,11 +328,11 @@ ${tournament.id},2,1,${player1.name},${player3.name},10,${player2.name},${player
|
||||
// Navigate back to upload page for second match
|
||||
await page.goto('/admin/matches/upload');
|
||||
await page.waitForLoadState('domcontentloaded');
|
||||
await page.waitForTimeout(2000);
|
||||
await page.waitForTimeout(500);
|
||||
|
||||
// Re-select the tournament for the second upload
|
||||
await page.waitForSelector('select#tournament', { timeout: 5000 });
|
||||
await page.waitForTimeout(1000); // Wait for tournaments to load
|
||||
await page.waitForSelector('select#tournament', { timeout: 3000 });
|
||||
await page.waitForTimeout(200); // Wait for tournaments to load
|
||||
|
||||
const tournamentSelect2 = await page.locator('select#tournament');
|
||||
const currentSelection = await tournamentSelect2.inputValue();
|
||||
@@ -351,10 +351,10 @@ ${tournament.id},2,1,${player1.name},${player3.name},10,${player2.name},${player
|
||||
await page.setInputFiles('input[type="file"]', tmpFile2);
|
||||
await page.waitForTimeout(500);
|
||||
await page.click('button[type="submit"]');
|
||||
await page.waitForTimeout(2000);
|
||||
await page.waitForTimeout(500);
|
||||
fs.unlinkSync(tmpFile2);
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
await page.waitForTimeout(500);
|
||||
|
||||
// Verify ratings after multiple matches
|
||||
const updatedPlayer1 = await prisma.player.findUnique({
|
||||
|
||||
@@ -133,7 +133,7 @@ test.describe.serial('Epic 1: User Logout', () => {
|
||||
await page.waitForLoadState('domcontentloaded');
|
||||
|
||||
// Wait a moment for the navigation component to update
|
||||
await page.waitForTimeout(1000);
|
||||
await page.waitForTimeout(200);
|
||||
|
||||
// Debug: Check what's on the page
|
||||
const pageContent = await page.content();
|
||||
|
||||
@@ -89,7 +89,7 @@ test.describe.serial('Epic 1: User Registration', () => {
|
||||
});
|
||||
|
||||
// Wait a moment for JavaScript to be ready
|
||||
await page.waitForTimeout(1000);
|
||||
await page.waitForTimeout(200);
|
||||
|
||||
// Submit form
|
||||
const [response] = await Promise.all([
|
||||
|
||||
+5
-5
@@ -101,14 +101,14 @@ async function createTestUsers(config: FullConfig) {
|
||||
try {
|
||||
await page.waitForResponse(response =>
|
||||
response.url().includes('/api/auth/sign-up/email') && response.status() === 200,
|
||||
{ timeout: 10000 }
|
||||
{ timeout: 5000 }
|
||||
);
|
||||
console.log('Sign-up API call successful');
|
||||
} catch {
|
||||
console.log('Sign-up API call failed or timed out');
|
||||
}
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
await page.waitForTimeout(500);
|
||||
await context.storageState({ path: authFile });
|
||||
console.log(`Created and authenticated test user: ${testEmail}`);
|
||||
|
||||
@@ -133,14 +133,14 @@ async function createTestUsers(config: FullConfig) {
|
||||
try {
|
||||
await page.waitForResponse(response =>
|
||||
response.url().includes('/api/auth/sign-up/email') && response.status() === 200,
|
||||
{ timeout: 10000 }
|
||||
{ timeout: 5000 }
|
||||
);
|
||||
console.log('Admin sign-up API call successful');
|
||||
} catch {
|
||||
console.log('Admin sign-up API call failed or timed out');
|
||||
}
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
await page.waitForTimeout(500);
|
||||
|
||||
const prisma = createPrismaClient();
|
||||
const user = await prisma.user.findUnique({ where: { email: adminEmail } });
|
||||
@@ -159,7 +159,7 @@ async function createTestUsers(config: FullConfig) {
|
||||
await page.waitForLoadState('domcontentloaded');
|
||||
console.log('Admin page loaded:', page.url());
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
await page.waitForTimeout(500);
|
||||
await page.reload();
|
||||
await page.waitForLoadState('domcontentloaded');
|
||||
console.log('Page reloaded');
|
||||
|
||||
@@ -175,7 +175,7 @@ test.describe.serial('Issue #7: Schedule Tab', () => {
|
||||
await page.click('button:has-text("Generate Schedule")');
|
||||
|
||||
// Wait for success message or page reload
|
||||
await page.waitForTimeout(3000);
|
||||
await page.waitForTimeout(500);
|
||||
|
||||
// Verify rounds were created in database
|
||||
const rounds = await prisma.tournamentRound.findMany({
|
||||
|
||||
@@ -189,7 +189,7 @@ test.describe.serial('Tournament with 10 Participants and Variable Team Durabili
|
||||
await page.click('button:has-text("Add")');
|
||||
|
||||
// Wait for the player to be added and UI to update
|
||||
await page.waitForTimeout(1000);
|
||||
await page.waitForTimeout(200);
|
||||
}
|
||||
|
||||
// Verify 10 players are added
|
||||
|
||||
@@ -4,16 +4,12 @@ export default defineConfig({
|
||||
testDir: './e2e',
|
||||
timeout: 30000,
|
||||
expect: {
|
||||
timeout: 5000
|
||||
timeout: 2000
|
||||
},
|
||||
// Run tests sequentially to avoid database conflicts
|
||||
fullyParallel: false,
|
||||
// Fail the build on CI if you accidentally left test.only in the source code.
|
||||
forbidOnly: !!process.env.CI,
|
||||
// Retry on CI only.
|
||||
retries: process.env.CI ? 1 : 0,
|
||||
// Use 1 worker in CI to avoid database conflicts between parallel projects
|
||||
workers: 1,
|
||||
// Run tests in parallel for speed - database isolation is per-test via unique data
|
||||
fullyParallel: true,
|
||||
// Use multiple workers in CI to speed up test execution
|
||||
workers: process.env.CI ? 10 : 1,
|
||||
// Reporter to use
|
||||
reporter: 'html',
|
||||
// Global setup and teardown
|
||||
|
||||
Reference in New Issue
Block a user