Merge pull request #582 from stefandevo/fix/e2e-response-disposal-race

fix: prevent response disposal race condition in E2E test
This commit is contained in:
Shirone
2026-01-19 00:02:04 +00:00
committed by GitHub

View File

@@ -84,18 +84,24 @@ test.describe('Open Project', () => {
// Intercept settings API BEFORE any navigation to prevent restoring a currentProject // Intercept settings API BEFORE any navigation to prevent restoring a currentProject
// AND inject our test project into the projects list // AND inject our test project into the projects list
await page.route('**/api/settings/global', async (route) => { await page.route('**/api/settings/global', async (route) => {
const response = await route.fetch(); let response;
// Immediately consume the body to prevent disposal issues try {
const bodyPromise = response.body(); response = await route.fetch();
const status = response.status(); } catch {
const headers = response.headers(); // If fetch fails, continue with original request
const body = await bodyPromise; await route.continue();
return;
}
let json; let json;
try { try {
json = JSON.parse(body.toString()); json = await response.json();
} catch { } catch {
json = {}; // If response is disposed, continue with original request
await route.continue();
return;
} }
if (json.settings) { if (json.settings) {
// Remove currentProjectId to prevent restoring a project // Remove currentProjectId to prevent restoring a project
json.settings.currentProjectId = null; json.settings.currentProjectId = null;
@@ -115,11 +121,7 @@ test.describe('Open Project', () => {
json.settings.projects = [testProject, ...existingProjects]; json.settings.projects = [testProject, ...existingProjects];
} }
} }
await route.fulfill({ await route.fulfill({ response, json });
status: status,
headers: headers,
json,
});
}); });
// Now navigate to the app // Now navigate to the app