Skip to content

Commit

Permalink
Make sure failing test with a result is accessible (#126)
Browse files Browse the repository at this point in the history
  • Loading branch information
soulgalore authored Jan 30, 2025
1 parent a8c24c8 commit 21a9ba6
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 43 deletions.
53 changes: 30 additions & 23 deletions server/src/routes/html/result.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,28 +18,30 @@ result.get('/:id', async function (request, response) {
const job = await workQueue.getJob(id);
if (job) {
const status = await job.getState();
if (status === 'completed') {
if (status === 'completed' || status === 'failed') {
if (job.returnvalue.pageSummaryUrl) {
return response.redirect(job.returnvalue.pageSummaryUrl);
} else if (status === 'failed') {
const { logs } = await workQueue.getJobLogs(id);
return response.render('error', {
status: status,
id: id,
logs: logs,
nconf,
message: getText('error.testfailed'),
getText
});
} else {
logger.error('Missing resultBaseURL setup for sitespeeed.io');
logger.error(
'Missing resultBaseURL setup for sitespeeed.io or no result file JSON created'
);
return response.render('error', {
id: id,
nconf,
message: getText('error.missingresultbaseurl'),
getText
});
}
} else if (status === 'failed') {
const { logs } = await workQueue.getJobLogs(id);
return response.render('error', {
status: status,
id: id,
logs: logs,
nconf,
message: getText('error.testfailed'),
getText
});
} else {
const testConfig = getConfigByTestId(id);
const count = await workQueue.count();
Expand Down Expand Up @@ -86,27 +88,32 @@ result.get('/:id', async function (request, response) {
message: getText('error.validation.nomatchingtestwithid', id),
getText
});
} else if (testResult.status === 'completed') {
} else if (
testResult.status === 'completed' ||
testResult.status === 'failed'
) {
if (testResult.result_url) {
return response.redirect(testResult.result_url);
} else if (testResult.status === 'failed') {
return response.render('error', {
status: testResult,
id: id,
logs: [],
nconf,
message: getText('error.testfailed'),
getText
});
} else {
logger.error('Missing resultBaseURL setup for sitespeeed.io');
logger.error(
'Missing resultBaseURL setup for sitespeeed.io or no result JSON created'
);
return response.render('error', {
id: id,
nconf,
message: getText('error.missingresultbaseurl'),
getText
});
}
} else if (testResult.status === 'failed') {
return response.render('error', {
status: testResult,
id: id,
logs: [],
nconf,
message: getText('error.testfailed'),
getText
});
}
}
});
6 changes: 0 additions & 6 deletions testrunner/src/testrunners/docker-testrunner.js
Original file line number Diff line number Diff line change
Expand Up @@ -134,12 +134,6 @@ export default async function runJob(job) {
removeOnFail
}
);

if (testResult.exitCode > 0) {
throw new Error(
`sitespeed.io exited with a failure exit code ${testResult.exitCode}`
);
}
return {
resultUrl: testResult.result.resultUrl,
pageSummaryUrl:
Expand Down
23 changes: 9 additions & 14 deletions testrunner/src/testrunners/testrunner.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,20 +63,15 @@ export default async function runJob(job) {
removeOnFail
}
);
if (testResult.exitCode > 0) {
throw new Error(
`sitespeed.io exited with a failure exit code ${testResult.exitCode}`
);
} else {
return {
resultUrl: testResult.result.resultUrl,
pageSummaryUrl:
testResult.exitCode === 0
? testResult.result.pageSummaryUrl
: testResult.result.resultUrl,
status: testResult.exitCode === 0 ? 'completed' : 'failed'
};
}

return {
resultUrl: testResult.result.resultUrl,
pageSummaryUrl:
testResult.exitCode === 0
? testResult.result.pageSummaryUrl
: testResult.result.resultUrl,
status: testResult.exitCode === 0 ? 'completed' : 'failed'
};
} catch (error) {
logger.error('Job execution failed: %s', error.message);
job.log('Job failed:' + error.message);
Expand Down

0 comments on commit 21a9ba6

Please sign in to comment.