summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-02-11 16:35:41 +0100
committerSamy Pesse <samypesse@gmail.com>2016-02-11 16:35:41 +0100
commit347a536a4e313dece2e12d0ba1ec6654ee729c85 (patch)
tree8308fe7a3b031361bcafaaa94cc76232732e259d /test
parent5cf0abaf2b50946420952e9ce36e357ac0d08d54 (diff)
downloadgitbook-347a536a4e313dece2e12d0ba1ec6654ee729c85.zip
gitbook-347a536a4e313dece2e12d0ba1ec6654ee729c85.tar.gz
gitbook-347a536a4e313dece2e12d0ba1ec6654ee729c85.tar.bz2
Add git urls parsing and tests
Diffstat (limited to 'test')
-rw-r--r--test/all.js1
-rw-r--r--test/git.js48
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');
+ });
+ });
+
+});