in src/main/resources/static/coverage.js [174:216]
async fetchCoverageJsonData(changeInfo, type) {
if (type !== 'lines' && type !== 'percentages') {
throw new Error(
'Type is expected to be either "lines" or "percentages"');
}
const params = new URLSearchParams({
host: changeInfo.host,
project: changeInfo.project,
change: changeInfo.changeNum,
patchset: changeInfo.patchNum,
type: type,
format: 'json',
concise: '1',
});
let coverageHost = COVERAGE_SERVICE_HOST[changeInfo.host];
// If the host is not found, use CHROMIUM_COVERAGE_HOST by default.
if (coverageHost === undefined) {
coverageHost = CHROMIUM_COVERAGE_HOST;
}
const endpoint = coverageHost + COVERAGE_SERVICE_ENDPOINT_SUFFIX;
const url = `${endpoint}?${params.toString()}`;
const response = await fetch(url);
const responseJson = await response.json();
if (response.status == 400 &&
responseJson.is_project_supported === false) {
throw new Error(`"${changeInfo.project}" project is not supported ` +
`for code coverage`);
}
if (response.status == 500 &&
responseJson.is_service_enabled === false) {
throw new Error('Code coverage service is temporarily disabled');
}
if (!response.ok) {
throw new Error(`Request code coverage data returned http ` +
`${response.status}`);
}
return responseJson;
}