138 lines
3.1 KiB
JavaScript

const http = require('http');
import { walk } from '../src/walk';
const concat = require('concat-stream');
function get(url, callback) {
return new Promise((resolve, reject) => {
http.get(url, function(res) {
res.pipe(
concat(function(text) {
if (res.statusCode >= 400) {
return reject(res.statusCode);
}
resolve(text.toString());
})
);
});
});
}
function normalize(comments) {
return walk(comments, function(comment) {
const hasGithub = !!comment.context.github;
const path = comment.context.path;
comment.context = {
loc: comment.context.loc
};
if (hasGithub) {
comment.context.github = {
path: '[github]',
url: '[github]'
};
}
if (path) {
comment.context.path = path;
}
});
}
module.exports.mockRepo = {
master: {
'/my': {
repository: {
path: {
'.git': {
HEAD: 'ref: refs/heads/master',
config:
'[remote "origin"]\n' +
'url = git@github.com:foo/bar.git\n' +
'fetch = +refs/heads/*:refs/remotes/origin/*',
refs: {
heads: {
master: 'this_is_the_sha'
}
}
},
'index.js': 'module.exports = 42;'
}
}
}
},
detached: {
'/my': {
repository: {
path: {
'.git': {
HEAD: 'e4cb2ffe677571d0503e659e4e64e01f45639c62',
config:
'[remote "origin"]\n' +
'url = git@github.com:foo/bar.git\n' +
'fetch = +refs/heads/*:refs/remotes/origin/*'
},
'index.js': 'module.exports = 42;'
}
}
}
},
submodule: {
'/my': {
repository: {
'my.submodule': {
'.git': 'gitdir: ../.git/modules/my.submodule',
'index.js': 'module.exports = 42;'
},
'.git': {
config:
'[submodule "my.submodule"]\n' +
'url = https://github.com/foo/bar\n' +
'active = true',
modules: {
'my.submodule': {
HEAD: 'ref: refs/heads/master',
refs: {
heads: {
master: 'this_is_the_sha'
}
}
}
}
}
}
}
},
malformed: {
'/my': {
repository: {
path: {
'.git': {},
'index.js': 'module.exports = 42;'
}
}
}
},
enterprise: {
'/my': {
repository: {
path: {
'.git': {
HEAD: 'ref: refs/heads/master',
config:
'[remote "origin"]\n' +
'url = git@github.enterprise.com:foo/bar.git\n' +
'fetch = +refs/heads/*:refs/remotes/origin/*',
refs: {
heads: {
master: 'this_is_the_sha'
}
}
},
'index.js': 'module.exports = 42;'
}
}
}
}
};
module.exports.get = get;
module.exports.normalize = normalize;