@@ -4,6 +4,7 @@ const Fs = require('fs');
4
4
const Nock = require ( 'nock' ) ;
5
5
const Path = require ( 'path' ) ;
6
6
const Sinon = require ( 'sinon' ) ;
7
+ const SimpleGit = require ( 'simple-git/promise' ) ;
7
8
const Tmp = require ( 'tmp' ) ;
8
9
9
10
const NodeSupport = require ( '..' ) ;
@@ -17,12 +18,16 @@ const internals = {
17
18
tmpObjects : [ ]
18
19
} ;
19
20
20
- internals . prepareFixture = ( { travisYml, packageJson } = { } ) => {
21
+ internals . prepareFixture = async ( { travisYml, packageJson, git = true } = { } ) => {
21
22
22
23
const tmpObj = Tmp . dirSync ( { unsafeCleanup : true } ) ;
23
24
24
25
internals . tmpObjects . push ( tmpObj ) ;
25
26
27
+ if ( git ) {
28
+ await SimpleGit ( tmpObj . name ) . init ( ) ;
29
+ }
30
+
26
31
if ( travisYml ) {
27
32
Fs . copyFileSync ( Path . join ( __dirname , 'fixtures' , travisYml ) , Path . join ( tmpObj . name , '.travis.yml' ) ) ;
28
33
}
@@ -78,7 +83,7 @@ describe('node-support', () => {
78
83
79
84
it ( 'leaves out `travis` when no `.travis.yml` present' , async ( ) => {
80
85
81
- const path = internals . prepareFixture ( ) ;
86
+ const path = await internals . prepareFixture ( ) ;
82
87
83
88
const result = await NodeSupport . detect ( { path } ) ;
84
89
@@ -91,7 +96,7 @@ describe('node-support', () => {
91
96
92
97
it ( 'returns the single node version' , async ( ) => {
93
98
94
- const path = internals . prepareFixture ( {
99
+ const path = await internals . prepareFixture ( {
95
100
travisYml : '_single-version.yml'
96
101
} ) ;
97
102
@@ -109,7 +114,7 @@ describe('node-support', () => {
109
114
110
115
it ( 'returns default node version' , async ( ) => {
111
116
112
- const path = internals . prepareFixture ( {
117
+ const path = await internals . prepareFixture ( {
113
118
travisYml : '_minimal.yml'
114
119
} ) ;
115
120
@@ -127,7 +132,7 @@ describe('node-support', () => {
127
132
128
133
it ( 'returns empty array when no node detected' , async ( ) => {
129
134
130
- const path = internals . prepareFixture ( {
135
+ const path = await internals . prepareFixture ( {
131
136
travisYml : '_no-node.yml'
132
137
} ) ;
133
138
@@ -145,7 +150,7 @@ describe('node-support', () => {
145
150
146
151
it ( 'returns node versions from matrix env vars (NODEJS_VER)' , async ( ) => {
147
152
148
- const path = internals . prepareFixture ( {
153
+ const path = await internals . prepareFixture ( {
149
154
travisYml : 'kangax-html-minifier.yml'
150
155
} ) ;
151
156
@@ -163,7 +168,7 @@ describe('node-support', () => {
163
168
164
169
it ( 'returns node versions from matrix env vars (TRAVIS_NODE_VERSION)' , async ( ) => {
165
170
166
- const path = internals . prepareFixture ( {
171
+ const path = await internals . prepareFixture ( {
167
172
travisYml : 'nodejs-nan.yml'
168
173
} ) ;
169
174
@@ -181,7 +186,7 @@ describe('node-support', () => {
181
186
182
187
it ( 'returns node versions from matrix env vars (NODE_VER)' , async ( ) => {
183
188
184
- const path = internals . prepareFixture ( {
189
+ const path = await internals . prepareFixture ( {
185
190
travisYml : 'reactivex-rxjs.yml'
186
191
} ) ;
187
192
@@ -199,7 +204,7 @@ describe('node-support', () => {
199
204
200
205
it ( 'handles non-matching matrix env vars' , async ( ) => {
201
206
202
- const path = internals . prepareFixture ( {
207
+ const path = await internals . prepareFixture ( {
203
208
travisYml : 'caolan-async.yml'
204
209
} ) ;
205
210
@@ -217,7 +222,7 @@ describe('node-support', () => {
217
222
218
223
it ( 'returns node versions from matrix include' , async ( ) => {
219
224
220
- const path = internals . prepareFixture ( {
225
+ const path = await internals . prepareFixture ( {
221
226
travisYml : 'nodejs-readable-stream.yml'
222
227
} ) ;
223
228
@@ -235,7 +240,7 @@ describe('node-support', () => {
235
240
236
241
it ( 'handles single matrix include' , async ( ) => {
237
242
238
- const path = internals . prepareFixture ( {
243
+ const path = await internals . prepareFixture ( {
239
244
travisYml : 'postcss-autoprefixer.yml'
240
245
} ) ;
241
246
@@ -253,7 +258,7 @@ describe('node-support', () => {
253
258
254
259
it ( 'handles matrix includes without node versions' , async ( ) => {
255
260
256
- const path = internals . prepareFixture ( {
261
+ const path = await internals . prepareFixture ( {
257
262
travisYml : 'shinn-is-resolvable.yml'
258
263
} ) ;
259
264
@@ -271,7 +276,7 @@ describe('node-support', () => {
271
276
272
277
it ( 'handles missing env.matrix' , async ( ) => {
273
278
274
- const path = internals . prepareFixture ( {
279
+ const path = await internals . prepareFixture ( {
275
280
travisYml : '_no-env-matrix.yml'
276
281
} ) ;
277
282
@@ -286,6 +291,14 @@ describe('node-support', () => {
286
291
}
287
292
} ) ;
288
293
} ) ;
294
+
295
+ it ( 'throws when path is not a git repo' , async ( ) => {
296
+
297
+ const path = await internals . prepareFixture ( { git : false } ) ;
298
+
299
+ await expect ( NodeSupport . detect ( { path } ) )
300
+ . to . reject ( `${ path } is not a git repository` ) ;
301
+ } ) ;
289
302
} ) ;
290
303
291
304
0 commit comments