You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
427 lines
12 KiB
427 lines
12 KiB
const ghutils = require('ghutils/test-util') |
|
, ghrepos = require('./') |
|
, test = require('tape') |
|
, xtend = require('xtend') |
|
|
|
|
|
test('test list repos for user', function (t) { |
|
t.plan(10) |
|
|
|
var auth = { user: 'authuser', token: 'authtoken' } |
|
, user = 'testuser' |
|
, testData = [ |
|
{ |
|
response : [ { test3: 'data3' }, { test4: 'data4' } ] |
|
, headers : { link: '<https://somenexturl>; rel="next"' } |
|
} |
|
, [] |
|
] |
|
, server |
|
|
|
server = ghutils.makeServer(testData) |
|
.on('ready', function () { |
|
var result = testData[0].response |
|
ghrepos.listUser(xtend(auth), user, ghutils.verifyData(t, result)) |
|
}) |
|
.on('request', ghutils.verifyRequest(t, auth)) |
|
.on('get', ghutils.verifyUrl(t, [ |
|
'https://api.github.com/users/testuser/repos?' |
|
, 'https://somenexturl' |
|
])) |
|
.on('close' , ghutils.verifyClose(t)) |
|
}) |
|
|
|
test('test list repos for org', function (t) { |
|
t.plan(10) |
|
|
|
var auth = { user: 'authuser', token: 'authtoken' } |
|
, org = 'testorg' |
|
, testData = [ |
|
{ |
|
response : [ { test3: 'data3' }, { test4: 'data4' } ] |
|
, headers : { link: '<https://somenexturl>; rel="next"' } |
|
} |
|
, [] |
|
] |
|
, server |
|
|
|
server = ghutils.makeServer(testData) |
|
.on('ready', function () { |
|
var result = testData[0].response |
|
ghrepos.listOrg(xtend(auth), org, ghutils.verifyData(t, result)) |
|
}) |
|
.on('request', ghutils.verifyRequest(t, auth)) |
|
.on('get', ghutils.verifyUrl(t, [ |
|
'https://api.github.com/orgs/testorg/repos?' |
|
, 'https://somenexturl' |
|
])) |
|
.on('close' , ghutils.verifyClose(t)) |
|
}) |
|
|
|
test('test list repos for authed user', function (t) { |
|
t.plan(10) |
|
|
|
var auth = { user: 'authuser', token: 'authtoken' } |
|
, testData = [ |
|
{ |
|
response : [ { test3: 'data3' }, { test4: 'data4' } ] |
|
, headers : { link: '<https://somenexturl>; rel="next"' } |
|
} |
|
, [] |
|
] |
|
, server |
|
|
|
server = ghutils.makeServer(testData) |
|
.on('ready', function () { |
|
var result = testData[0].response |
|
ghrepos.listUser(xtend(auth), ghutils.verifyData(t, result)) |
|
}) |
|
.on('request', ghutils.verifyRequest(t, auth)) |
|
.on('get', ghutils.verifyUrl(t, [ |
|
'https://api.github.com/user/repos' |
|
, 'https://somenexturl' |
|
])) |
|
.on('close' , ghutils.verifyClose(t)) |
|
}) |
|
|
|
|
|
test('test list repos for authed user with multi-page', function (t) { |
|
t.plan(13) |
|
|
|
var auth = { user: 'authuser', token: 'authtoken' } |
|
, testData = [ |
|
{ |
|
response : [ { test3: 'data3' }, { test4: 'data4' } ] |
|
, headers : { link: '<https://somenexturl>; rel="next"' } |
|
} |
|
, { |
|
response : [ { test5: 'data5' }, { test6: 'data6' } ] |
|
, headers : { link: '<https://somenexturl2>; rel="next"' } |
|
} |
|
, [] |
|
] |
|
, server |
|
|
|
server = ghutils.makeServer(testData) |
|
.on('ready', function () { |
|
var result = testData[0].response.concat(testData[1].response) |
|
ghrepos.listUser(xtend(auth), ghutils.verifyData(t, result)) |
|
}) |
|
.on('request', ghutils.verifyRequest(t, auth)) |
|
.on('get', ghutils.verifyUrl(t, [ |
|
'https://api.github.com/user/repos' |
|
, 'https://somenexturl' |
|
, 'https://somenexturl2' |
|
])) |
|
.on('close' , ghutils.verifyClose(t)) |
|
}) |
|
|
|
|
|
test('test list repos for authed user with no repos', function (t) { |
|
t.plan(7) |
|
|
|
var auth = { user: 'authuser', token: 'authtoken' } |
|
, testData = [ [] ] |
|
, server |
|
|
|
server = ghutils.makeServer(testData) |
|
.on('ready', function () { |
|
ghrepos.listUser(xtend(auth), ghutils.verifyData(t, [])) |
|
}) |
|
.on('request', ghutils.verifyRequest(t, auth)) |
|
.on('get', ghutils.verifyUrl(t, [ |
|
'https://api.github.com/user/repos' |
|
])) |
|
.on('close' , ghutils.verifyClose(t)) |
|
}) |
|
|
|
|
|
test('test get ref list for a repo', function (t) { |
|
t.plan(13) |
|
|
|
var auth = { user: 'authuser', token: 'authtoken' } |
|
, org = 'testorg' |
|
, repo = 'testrepo' |
|
, testData = [ |
|
{ |
|
response : [ { test3: 'data3' }, { test4: 'data4' } ] |
|
, headers : { link: '<https://somenexturl>; rel="next"' } |
|
} |
|
, { |
|
response : [ { test5: 'data5' }, { test6: 'data6' } ] |
|
, headers : { link: '<https://somenexturl2>; rel="next"' } |
|
} |
|
, [] |
|
] |
|
, server |
|
|
|
server = ghutils.makeServer(testData) |
|
.on('ready', function () { |
|
var result = testData[0].response.concat(testData[1].response) |
|
ghrepos.listRefs(xtend(auth), org, repo, ghutils.verifyData(t, result)) |
|
}) |
|
.on('request', ghutils.verifyRequest(t, auth)) |
|
.on('get', ghutils.verifyUrl(t, [ |
|
'https://api.github.com/repos/' + org + '/' + repo + '/git/refs' |
|
, 'https://somenexturl' |
|
, 'https://somenexturl2' |
|
])) |
|
.on('close' , ghutils.verifyClose(t)) |
|
}) |
|
|
|
|
|
test('test get branch list for a repo', function (t) { |
|
t.plan(13) |
|
|
|
var auth = { user: 'authuser', token: 'authtoken' } |
|
, org = 'testorg' |
|
, repo = 'testrepo' |
|
, testData = [ |
|
{ |
|
response : [ { test3: 'data3' }, { test4: 'data4' } ] |
|
, headers : { link: '<https://somenexturl>; rel="next"' } |
|
} |
|
, { |
|
response : [ { test5: 'data5' }, { test6: 'data6' } ] |
|
, headers : { link: '<https://somenexturl2>; rel="next"' } |
|
} |
|
, [] |
|
] |
|
, server |
|
|
|
server = ghutils.makeServer(testData) |
|
.on('ready', function () { |
|
var result = testData[0].response.concat(testData[1].response) |
|
ghrepos.listBranches(xtend(auth), org, repo, ghutils.verifyData(t, result)) |
|
}) |
|
.on('request', ghutils.verifyRequest(t, auth)) |
|
.on('get', ghutils.verifyUrl(t, [ |
|
'https://api.github.com/repos/' + org + '/' + repo + '/branches' |
|
, 'https://somenexturl' |
|
, 'https://somenexturl2' |
|
])) |
|
.on('close' , ghutils.verifyClose(t)) |
|
}) |
|
|
|
|
|
test('test get tag list for a repo', function (t) { |
|
t.plan(13) |
|
|
|
var auth = { user: 'authuser', token: 'authtoken' } |
|
, org = 'testorg' |
|
, repo = 'testrepo' |
|
, testData = [ |
|
{ |
|
response : [ { test3: 'data3' }, { test4: 'data4' } ] |
|
, headers : { link: '<https://somenexturl>; rel="next"' } |
|
} |
|
, { |
|
response : [ { test5: 'data5' }, { test6: 'data6' } ] |
|
, headers : { link: '<https://somenexturl2>; rel="next"' } |
|
} |
|
, [] |
|
] |
|
, server |
|
|
|
server = ghutils.makeServer(testData) |
|
.on('ready', function () { |
|
var result = testData[0].response.concat(testData[1].response) |
|
ghrepos.listTags(xtend(auth), org, repo, ghutils.verifyData(t, result)) |
|
}) |
|
.on('request', ghutils.verifyRequest(t, auth)) |
|
.on('get', ghutils.verifyUrl(t, [ |
|
'https://api.github.com/repos/' + org + '/' + repo + '/tags' |
|
, 'https://somenexturl' |
|
, 'https://somenexturl2' |
|
])) |
|
.on('close' , ghutils.verifyClose(t)) |
|
}) |
|
|
|
|
|
test('test get ref data for a ref', function (t) { |
|
t.plan(7) |
|
|
|
var auth = { user: 'authuser', token: 'authtoken' } |
|
, org = 'testorg' |
|
, repo = 'testrepo' |
|
, ref = 'head/testref' |
|
, testData = [ |
|
{ test3: 'data3' } |
|
] |
|
, server |
|
|
|
server = ghutils.makeServer(testData) |
|
.on('ready', function () { |
|
ghrepos.getRef(xtend(auth), org, repo, ref, ghutils.verifyData(t, testData[0])) |
|
}) |
|
.on('request', ghutils.verifyRequest(t, auth)) |
|
.on('get', ghutils.verifyUrl(t, [ |
|
'https://api.github.com/repos/' + org + '/' + repo + '/git/refs/' + ref |
|
])) |
|
.on('close' , ghutils.verifyClose(t)) |
|
}) |
|
|
|
|
|
test('test get branch data for a branch', function (t) { |
|
t.plan(7) |
|
|
|
var auth = { user: 'authuser', token: 'authtoken' } |
|
, org = 'testorg' |
|
, repo = 'testrepo' |
|
, branch = 'testbranch' |
|
, testData = [ |
|
{ test3: 'data3' } |
|
] |
|
, server |
|
|
|
server = ghutils.makeServer(testData) |
|
.on('ready', function () { |
|
ghrepos.getBranch(xtend(auth), org, repo, branch, ghutils.verifyData(t, testData[0])) |
|
}) |
|
.on('request', ghutils.verifyRequest(t, auth)) |
|
.on('get', ghutils.verifyUrl(t, [ |
|
'https://api.github.com/repos/' + org + '/' + repo + '/branches/' + branch |
|
])) |
|
.on('close' , ghutils.verifyClose(t)) |
|
}) |
|
|
|
|
|
test('test get ref data for a ref with refs/ prefix', function (t) { |
|
t.plan(7) |
|
|
|
var auth = { user: 'authuser', token: 'authtoken' } |
|
, org = 'testorg' |
|
, repo = 'testrepo' |
|
, ref = 'head/testref' |
|
, testData = [ |
|
{ test3: 'data3' } |
|
] |
|
, server |
|
|
|
server = ghutils.makeServer(testData) |
|
.on('ready', function () { |
|
ghrepos.getRef(xtend(auth), org, repo, 'refs/' + ref, ghutils.verifyData(t, testData[0])) |
|
}) |
|
.on('request', ghutils.verifyRequest(t, auth)) |
|
.on('get', ghutils.verifyUrl(t, [ |
|
'https://api.github.com/repos/' + org + '/' + repo + '/git/refs/' + ref |
|
])) |
|
.on('close' , ghutils.verifyClose(t)) |
|
}) |
|
|
|
|
|
test('test list commits for authed user', function (t) { |
|
t.plan(10) |
|
|
|
var auth = { user: 'authuser', token: 'authtoken' } |
|
, org = 'testorg' |
|
, repo = 'testrepo' |
|
, testData = [ |
|
{ |
|
response : [ { test3: 'data3' }, { test4: 'data4' } ] |
|
, headers : { link: '<https://somenexturl>; rel="next"' } |
|
} |
|
, [] |
|
] |
|
, server |
|
|
|
server = ghutils.makeServer(testData) |
|
.on('ready', function () { |
|
var result = testData[0].response |
|
ghrepos.listCommits(xtend(auth), org, repo, ghutils.verifyData(t, result)) |
|
}) |
|
.on('request', ghutils.verifyRequest(t, auth)) |
|
.on('get', ghutils.verifyUrl(t, [ |
|
'https://api.github.com/repos/testorg/testrepo/commits' |
|
, 'https://somenexturl' |
|
])) |
|
.on('close' , ghutils.verifyClose(t)) |
|
}) |
|
|
|
|
|
test('test get commit for authed user', function (t) { |
|
t.plan(7) |
|
|
|
var auth = { user: 'authuser', token: 'authtoken' } |
|
, org = 'testorg' |
|
, repo = 'testrepo' |
|
, ref = 'aaee1122' |
|
, testData = [ |
|
{ |
|
response : [ { test3: 'data3' }, { test4: 'data4' } ] |
|
, headers : { link: '<https://somenexturl>; rel="next"' } |
|
} |
|
] |
|
, server |
|
|
|
server = ghutils.makeServer(testData) |
|
.on('ready', function () { |
|
var result = testData[0].response |
|
ghrepos.getCommit(xtend(auth), org, repo, ref, ghutils.verifyData(t, result)) |
|
}) |
|
.on('request', ghutils.verifyRequest(t, auth)) |
|
.on('get', ghutils.verifyUrl(t, [ |
|
'https://api.github.com/repos/testorg/testrepo/commits/aaee1122' |
|
, 'https://somenexturl' |
|
])) |
|
.on('close' , ghutils.verifyClose(t)) |
|
}) |
|
|
|
|
|
test('test get commit comments for authed user', function (t) { |
|
t.plan(7) |
|
|
|
var auth = { user: 'authuser', token: 'authtoken' } |
|
, org = 'testorg' |
|
, repo = 'testrepo' |
|
, ref = 'aaee1122' |
|
, testData = [ |
|
{ |
|
response : [ { test3: 'data3' }, { test4: 'data4' } ] |
|
, headers : { link: '<https://somenexturl>; rel="next"' } |
|
} |
|
] |
|
, server |
|
|
|
server = ghutils.makeServer(testData) |
|
.on('ready', function () { |
|
var result = testData[0].response |
|
ghrepos.getCommitComments(xtend(auth), org, repo, ref, ghutils.verifyData(t, result)) |
|
}) |
|
.on('request', ghutils.verifyRequest(t, auth)) |
|
.on('get', ghutils.verifyUrl(t, [ |
|
'https://api.github.com/repos/testorg/testrepo/commits/aaee1122/comments' |
|
, 'https://somenexturl' |
|
])) |
|
.on('close' , ghutils.verifyClose(t)) |
|
}) |
|
|
|
|
|
test('test footype repo lister', function (t) { |
|
t.plan(10) |
|
|
|
var auth = { user: 'authuser', token: 'authtoken' } |
|
, org = 'testorg' |
|
, repo = 'testrepo' |
|
, testData = [ |
|
{ |
|
response : [ { test3: 'data3' }, { test4: 'data4' } ] |
|
, headers : { link: '<https://somenexturl>; rel="next"' } |
|
} |
|
, [] |
|
] |
|
, lister = ghrepos.createLister('footype') |
|
, server |
|
|
|
server = ghutils.makeServer(testData) |
|
.on('ready', function () { |
|
var result = testData[0].response |
|
lister(xtend(auth), org, repo, ghutils.verifyData(t, result)) |
|
}) |
|
.on('request', ghutils.verifyRequest(t, auth)) |
|
.on('get', ghutils.verifyUrl(t, [ |
|
'https://api.github.com/repos/' + org + '/' + repo + '/footype' |
|
, 'https://somenexturl' |
|
])) |
|
.on('close' , ghutils.verifyClose(t)) |
|
})
|
|
|