UNPKG

4.01 kBJavaScriptView Raw
1var assert = require('assert')
2var download = require('..')
3var read = require('fs-readdir-recursive')
4var rm = require('rimraf').sync
5
6describe('download-git-repo', function () {
7 this.timeout(20000)
8
9 beforeEach(function () {
10 rm('test/tmp')
11 })
12
13 var filter = function (x) {
14 return x[0] !== '.' || x === '.git'
15 }
16
17 var runStyle = function (type, style) {
18 var clone = false
19 if (style === 'clones') clone = true
20
21 it(style + ' master branch by default', function (done) {
22 download(type + ':flipxfx/download-git-repo-fixture', 'test/tmp', { clone: clone }, function (err) {
23 if (err) return done(err)
24 var actual = read('test/tmp', filter)
25 var expected = read('test/fixtures/' + type + '/master')
26 assert.deepEqual(actual, expected)
27 done()
28 })
29 })
30
31 it(style + ' a branch', function (done) {
32 download(type + ':flipxfx/download-git-repo-fixture#my-branch', 'test/tmp', { clone: clone }, function (err) {
33 if (err) return done(err)
34 var actual = read('test/tmp', filter)
35 var expected = read('test/fixtures/' + type + '/my-branch')
36 assert.deepEqual(actual, expected)
37 done()
38 })
39 })
40
41 it(style + ' a branch with slashes', function (done) {
42 download(type + ':flipxfx/download-git-repo-fixture#my/branch/with/slashes', 'test/tmp', { clone: clone }, function (err) {
43 if (err) return done(err)
44 var actual = read('test/tmp', filter)
45 var expected = read('test/fixtures/' + type + '/my-branch-with-slashes')
46 assert.deepEqual(actual, expected)
47 done()
48 })
49 })
50
51 it(style + ' master branch with specific origin', function (done) {
52 download(type + ':' + type + '.com:flipxfx/download-git-repo-fixture', 'test/tmp', { clone: clone }, function (err) {
53 if (err) return done(err)
54 var actual = read('test/tmp', filter)
55 var expected = read('test/fixtures/' + type + '/master')
56 assert.deepEqual(actual, expected)
57 done()
58 })
59 })
60
61 it(style + ' master branch with specific origin and protocol', function (done) {
62 download(type + ':https://' + type + '.com:flipxfx/download-git-repo-fixture', 'test/tmp', { clone: clone }, function (err) {
63 if (err) return done(err)
64 var actual = read('test/tmp', filter)
65 var expected = read('test/fixtures/' + type + '/master')
66 assert.deepEqual(actual, expected)
67 done()
68 })
69 })
70
71 }
72
73 var runType = function (type) {
74 runStyle(type, 'downloads')
75
76 runStyle(type, 'clones')
77
78 it('clones master branch with specific origin without type', function (done) {
79 download(type + '.com:flipxfx/download-git-repo-fixture', 'test/tmp', { clone: true }, function (err) {
80 if (err) return done(err)
81 var actual = read('test/tmp', filter)
82 var expected = read('test/fixtures/' + type + '/master')
83 assert.deepEqual(actual, expected)
84 done()
85 })
86 })
87
88 it('clones master branch with specific origin and protocol without type', function (done) {
89 download('https://' + type + '.com:flipxfx/download-git-repo-fixture', 'test/tmp', { clone: true }, function (err) {
90 if (err) return done(err)
91 var actual = read('test/tmp', filter)
92 var expected = read('test/fixtures/' + type + '/master')
93 assert.deepEqual(actual, expected)
94 done()
95 })
96 })
97 }
98
99 describe('via github', function () {
100 runType('github')
101
102 it('downloads from github by default', function (done) {
103 download('flipxfx/download-git-repo-fixture', 'test/tmp', function (err) {
104 if (err) return done(err)
105 var actual = read('test/tmp', filter)
106 var expected = read('test/fixtures/github/master')
107 assert.deepEqual(actual, expected)
108 done()
109 })
110 })
111 })
112
113 describe('via gitlab', function () {
114 runType('gitlab')
115 })
116
117 describe('via bitbucket', function () {
118 runType('bitbucket')
119 })
120})