diff --git a/src/components/fileviewer.js b/src/components/fileviewer.js
index f9afe45b..4b3f7b4c 100644
--- a/src/components/fileviewer.js
+++ b/src/components/fileviewer.js
@@ -33,29 +33,37 @@ export default class FileViewerContainer extends Component {
});
});
- FetchAPI.getFileRevisionCoverage(revision, path,
- (data) => {
- console.log(data);
- this.setState(() => ({ coverage: data }));
- // TODO remove these log lines
- console.log(this.state.coverage.data[0][0].source.file.covered);
- console.log(this.state.coverage.data[0][0].source.file.uncovered);
- console.log(this.state.coverage.data[0][0].source.file.percentage_covered);
- }
- )
+ FetchAPI.getFileRevisionCoverage(revision, path)
+ .then(response => {
+ if (response.status !== 200) {
+ console.log('Error status code' + response.status);
+ return;
+ }
+ response.json().then(data => {
+ this.setState({ coverage: data });
+ // TODO remove these log lines
+ console.log(data);
+ console.log(this.state.coverage.data[0][0].source.file.covered);
+ console.log(this.state.coverage.data[0][0].source.file.uncovered);
+ console.log(this.state.coverage.data[0][0].source.file.percentage_covered);
+ });
+ })
+ .catch(err => {
+ console.log('Fetch error', err);
+ })
};
render() {
const { revision, path } = this.props;
return (
-
-
@@ -65,13 +73,13 @@ export default class FileViewerContainer extends Component {
/* This component renders each line of the file with its line number */
const FileViewer = ({ parsedFile, coverage }) => {
- return (
+ return (
- {
+ {
parsedFile.map((line, lineNumber) => (
-
export const getRawFile = (revision, path) =>
fetch(`${hgHost}/integration/mozilla-inbound/raw-file/${revision}/${path}`, { plainHeaders });
-// Taken from https://github.com/mozilla/moz-coco/blob/master/src/client/Client.js
-// On October 23, 2017
-// Under the MPL License
-export const getFileRevisionCoverage = (revision, path, callback) => {
- const body = Query.testCoverage(revision, path);
- const jsonbody = JSON.stringify(body);
- const options = {
- hostname: `${activeData}`,
- port: 443,
- path: '/query',
- method: 'POST',
- headers: {
- 'Content-Type': 'text/plain',
- 'Content-Length': Buffer.byteLength(jsonbody)
- }
- }
- console.log("Query sent: " + jsonbody);
- const respchunks = [];
- const p = new Promise((resolve, reject) => {
- const req = https.request(options, (res) => {
- res.setEncoding('utf8');
- res.on('data', (chunk) => {
- respchunks.push(new Buffer(chunk));
- });
- res.on('end', (chunk) => {
- resolve(Buffer.concat(respchunks).toString('utf8'));
- });
- res.on('error', (e) => {
- reject(e);
- });
- });
- req.write(jsonbody);
- req.end();
- });
- p.then((body) => {
- callback(JSON.parse(body));
- }).catch((err) => console.log(`Exception in fetch_data.js: ${err}`));
-}
\ No newline at end of file
+// get coverage from ActiveData for a particular source file
+export const getFileRevisionCoverage = (revision, path) =>
+ fetch(`${activeData}/query`, { jsonHeaders, method:"POST", body: JSON.stringify(Query.testCoverage(revision, path)) });