diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/all.js | 1 | ||||
-rw-r--r-- | test/git.js | 48 |
2 files changed, 49 insertions, 0 deletions
diff --git a/test/all.js b/test/all.js index 4a5ba83..0f55603 100644 --- a/test/all.js +++ b/test/all.js @@ -8,6 +8,7 @@ require('./langs'); require('./parse'); require('./template'); +require('./git'); // Output require('./output-json'); diff --git a/test/git.js b/test/git.js new file mode 100644 index 0000000..bad031b --- /dev/null +++ b/test/git.js @@ -0,0 +1,48 @@ +var should = require('should'); +var git = require('../lib/utils/git'); + +describe('Git', function() { + + describe('URL parsing', function() { + + it('should correctly validate git urls', function() { + // HTTPS + git.isUrl('git+https://github.com/Hello/world.git').should.be.ok; + + // SSH + git.isUrl('git+git@github.com:GitbookIO/gitbook.git/directory/README.md#e1594cde2c32e4ff48f6c4eff3d3d461743d74e1').should.be.ok; + + // Non valid + git.isUrl('https://github.com/Hello/world.git').should.not.be.ok; + git.isUrl('README.md').should.not.be.ok; + }); + + it('should parse HTTPS urls', function() { + var parts = git.parseUrl('git+https://gist.github.com/69ea4542e4c8967d2fa7.git/test.md'); + + should.exist(parts); + parts.host.should.be.equal('https://gist.github.com/69ea4542e4c8967d2fa7.git'); + parts.ref.should.be.equal('master'); + parts.filepath.should.be.equal('test.md'); + }); + + it('should parse HTTPS urls with a reference', function() { + var parts = git.parseUrl('git+https://gist.github.com/69ea4542e4c8967d2fa7.git/test.md#1.0.0'); + + should.exist(parts); + parts.host.should.be.equal('https://gist.github.com/69ea4542e4c8967d2fa7.git'); + parts.ref.should.be.equal('1.0.0'); + parts.filepath.should.be.equal('test.md'); + }); + + it('should parse SSH urls', function() { + var parts = git.parseUrl('git+git@github.com:GitbookIO/gitbook.git/directory/README.md#e1594cde2c32e4ff48f6c4eff3d3d461743d74e1'); + + should.exist(parts); + parts.host.should.be.equal('git@github.com:GitbookIO/gitbook.git'); + parts.ref.should.be.equal('e1594cde2c32e4ff48f6c4eff3d3d461743d74e1'); + parts.filepath.should.be.equal('directory/README.md'); + }); + }); + +}); |