-
Notifications
You must be signed in to change notification settings - Fork 45
/
Copy pathtest.js
97 lines (78 loc) · 3.37 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/* global describe, it */
var parse = require('./')
var assert = require('better-assert')
describe('parse(url)', function () {
it('should support git://*', function () {
var url = 'git://github.com/jamesor/mongoose-versioner'
parse(url).should.equal('https://github.com/jamesor/mongoose-versioner')
})
it('should support git://*.git', function () {
var url = 'git://github.com/treygriffith/cellar.git'
parse(url).should.equal('https://github.com/treygriffith/cellar')
})
it('should support https://*', function () {
var url = 'https://github.com/Empeeric/i18n-node'
parse(url).should.equal('https://github.com/Empeeric/i18n-node')
})
it('should support https://*.git', function () {
var url = 'https://[email protected]/banchee/tranquil.git'
parse(url).should.equal('https://github.com/banchee/tranquil')
})
it('should return undefined on failure', function () {
var url = 'git://github.com/justgord/.git'
assert(parse(url) == null)
})
it('should parse [email protected]:bcoe/thumbd.git', function () {
var url = '[email protected]:bcoe/thumbd.git'
parse(url).should.eql('https://github.com/bcoe/thumbd')
})
it('should parse [email protected]:/bcoe/thumbd.git', function () {
var url = '[email protected]:/bcoe/thumbd.git'
parse(url).should.eql('https://github.com/bcoe/thumbd')
})
it('should parse [email protected]:bcoe/thumbd.git#2.7.0', function () {
var url = '[email protected]:bcoe/thumbd.git#2.7.0'
parse(url).should.eql('https://github.com/bcoe/thumbd')
})
it('should parse git+https://github.com/bcoe/thumbd.git', function () {
var url = 'git+https://github.com/bcoe/thumbd.git'
parse(url).should.eql('https://github.com/bcoe/thumbd')
})
it('should parse git+ssh://github.com/bcoe/thumbd.git', function () {
var url = 'git+ssh://github.com/bcoe/thumbd.git'
parse(url).should.eql('https://github.com/bcoe/thumbd')
})
it('should parse https://[email protected]/EastCloud/node-websockets.git', function () {
var url = 'https://[email protected]/EastCloud/node-websockets.git'
parse(url).should.eql('https://github.com/EastCloud/node-websockets')
})
// gist urls.
it('should parse git@gist urls', function () {
var url = '[email protected]:3135914.git'
parse(url).should.equal('https://gist.github.com/3135914')
})
it('should parse https://gist urls', function () {
var url = 'https://gist.github.com/3135914.git'
parse(url).should.equal('https://gist.github.com/3135914')
})
// Handle arbitrary GitHub Enterprise domains.
it('should parse parse extra GHE urls provided', function () {
var url = 'git://github.example.com/treygriffith/cellar.git'
parse(
url, {extraBaseUrls: ['github.example.com']}
).should.equal('https://github.example.com/treygriffith/cellar')
})
it('should parse GHE urls with multiple subdomains', function () {
var url = 'git://github.internal.example.com/treygriffith/cellar.git'
parse(
url, {extraBaseUrls: ['github.internal.example.com']}
).should.equal('https://github.internal.example.com/treygriffith/cellar')
})
})
describe('re', function () {
it('should expose GitHub url parsing regex', function () {
parse.re.source.should.equal(
/^(?:https?:\/\/|git:\/\/|git\+ssh:\/\/|git\+https:\/\/)?(?:[^@]+@)?(gist.github.com|github.com)(?::\/?|\/)([^/]+\/[^/]+?|[0-9]+)$/.source
)
})
})