• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict'
2
3const test = require('tap').test
4const processRelease = require('../lib/process-release')
5
6test('test process release - process.version = 0.8.20', function (t) {
7  t.plan(2)
8
9  var release = processRelease([], { opts: {} }, 'v0.8.20', null)
10
11  t.equal(release.semver.version, '0.8.20')
12  delete release.semver
13
14  t.deepEqual(release, {
15    version: '0.8.20',
16    name: 'node',
17    baseUrl: 'https://nodejs.org/dist/v0.8.20/',
18    tarballUrl: 'https://nodejs.org/dist/v0.8.20/node-v0.8.20.tar.gz',
19    shasumsUrl: 'https://nodejs.org/dist/v0.8.20/SHASUMS256.txt',
20    versionDir: '0.8.20',
21    ia32: { libUrl: 'https://nodejs.org/dist/v0.8.20/node.lib', libPath: 'node.lib' },
22    x64: { libUrl: 'https://nodejs.org/dist/v0.8.20/x64/node.lib', libPath: 'x64/node.lib' },
23    arm64: { libUrl: 'https://nodejs.org/dist/v0.8.20/arm64/node.lib', libPath: 'arm64/node.lib' }
24  })
25})
26
27test('test process release - process.version = 0.10.21', function (t) {
28  t.plan(2)
29
30  var release = processRelease([], { opts: {} }, 'v0.10.21', null)
31
32  t.equal(release.semver.version, '0.10.21')
33  delete release.semver
34
35  t.deepEqual(release, {
36    version: '0.10.21',
37    name: 'node',
38    baseUrl: 'https://nodejs.org/dist/v0.10.21/',
39    tarballUrl: 'https://nodejs.org/dist/v0.10.21/node-v0.10.21.tar.gz',
40    shasumsUrl: 'https://nodejs.org/dist/v0.10.21/SHASUMS256.txt',
41    versionDir: '0.10.21',
42    ia32: { libUrl: 'https://nodejs.org/dist/v0.10.21/node.lib', libPath: 'node.lib' },
43    x64: { libUrl: 'https://nodejs.org/dist/v0.10.21/x64/node.lib', libPath: 'x64/node.lib' },
44    arm64: { libUrl: 'https://nodejs.org/dist/v0.10.21/arm64/node.lib', libPath: 'arm64/node.lib' }
45  })
46})
47
48// prior to -headers.tar.gz
49test('test process release - process.version = 0.12.9', function (t) {
50  t.plan(2)
51
52  var release = processRelease([], { opts: {} }, 'v0.12.9', null)
53
54  t.equal(release.semver.version, '0.12.9')
55  delete release.semver
56
57  t.deepEqual(release, {
58    version: '0.12.9',
59    name: 'node',
60    baseUrl: 'https://nodejs.org/dist/v0.12.9/',
61    tarballUrl: 'https://nodejs.org/dist/v0.12.9/node-v0.12.9.tar.gz',
62    shasumsUrl: 'https://nodejs.org/dist/v0.12.9/SHASUMS256.txt',
63    versionDir: '0.12.9',
64    ia32: { libUrl: 'https://nodejs.org/dist/v0.12.9/node.lib', libPath: 'node.lib' },
65    x64: { libUrl: 'https://nodejs.org/dist/v0.12.9/x64/node.lib', libPath: 'x64/node.lib' },
66    arm64: { libUrl: 'https://nodejs.org/dist/v0.12.9/arm64/node.lib', libPath: 'arm64/node.lib' }
67  })
68})
69
70// prior to -headers.tar.gz
71test('test process release - process.version = 0.10.41', function (t) {
72  t.plan(2)
73
74  var release = processRelease([], { opts: {} }, 'v0.10.41', null)
75
76  t.equal(release.semver.version, '0.10.41')
77  delete release.semver
78
79  t.deepEqual(release, {
80    version: '0.10.41',
81    name: 'node',
82    baseUrl: 'https://nodejs.org/dist/v0.10.41/',
83    tarballUrl: 'https://nodejs.org/dist/v0.10.41/node-v0.10.41.tar.gz',
84    shasumsUrl: 'https://nodejs.org/dist/v0.10.41/SHASUMS256.txt',
85    versionDir: '0.10.41',
86    ia32: { libUrl: 'https://nodejs.org/dist/v0.10.41/node.lib', libPath: 'node.lib' },
87    x64: { libUrl: 'https://nodejs.org/dist/v0.10.41/x64/node.lib', libPath: 'x64/node.lib' },
88    arm64: { libUrl: 'https://nodejs.org/dist/v0.10.41/arm64/node.lib', libPath: 'arm64/node.lib' }
89  })
90})
91
92// has -headers.tar.gz
93test('test process release - process.release ~ node@0.10.42', function (t) {
94  t.plan(2)
95
96  var release = processRelease([], { opts: {} }, 'v0.10.42', null)
97
98  t.equal(release.semver.version, '0.10.42')
99  delete release.semver
100
101  t.deepEqual(release, {
102    version: '0.10.42',
103    name: 'node',
104    baseUrl: 'https://nodejs.org/dist/v0.10.42/',
105    tarballUrl: 'https://nodejs.org/dist/v0.10.42/node-v0.10.42-headers.tar.gz',
106    shasumsUrl: 'https://nodejs.org/dist/v0.10.42/SHASUMS256.txt',
107    versionDir: '0.10.42',
108    ia32: { libUrl: 'https://nodejs.org/dist/v0.10.42/node.lib', libPath: 'node.lib' },
109    x64: { libUrl: 'https://nodejs.org/dist/v0.10.42/x64/node.lib', libPath: 'x64/node.lib' },
110    arm64: { libUrl: 'https://nodejs.org/dist/v0.10.42/arm64/node.lib', libPath: 'arm64/node.lib' }
111  })
112})
113
114// has -headers.tar.gz
115test('test process release - process.release ~ node@0.12.10', function (t) {
116  t.plan(2)
117
118  var release = processRelease([], { opts: {} }, 'v0.12.10', null)
119
120  t.equal(release.semver.version, '0.12.10')
121  delete release.semver
122
123  t.deepEqual(release, {
124    version: '0.12.10',
125    name: 'node',
126    baseUrl: 'https://nodejs.org/dist/v0.12.10/',
127    tarballUrl: 'https://nodejs.org/dist/v0.12.10/node-v0.12.10-headers.tar.gz',
128    shasumsUrl: 'https://nodejs.org/dist/v0.12.10/SHASUMS256.txt',
129    versionDir: '0.12.10',
130    ia32: { libUrl: 'https://nodejs.org/dist/v0.12.10/node.lib', libPath: 'node.lib' },
131    x64: { libUrl: 'https://nodejs.org/dist/v0.12.10/x64/node.lib', libPath: 'x64/node.lib' },
132    arm64: { libUrl: 'https://nodejs.org/dist/v0.12.10/arm64/node.lib', libPath: 'arm64/node.lib' }
133  })
134})
135
136test('test process release - process.release ~ node@4.1.23', function (t) {
137  t.plan(2)
138
139  var release = processRelease([], { opts: {} }, 'v4.1.23', {
140    name: 'node',
141    headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz'
142  })
143
144  t.equal(release.semver.version, '4.1.23')
145  delete release.semver
146
147  t.deepEqual(release, {
148    version: '4.1.23',
149    name: 'node',
150    baseUrl: 'https://nodejs.org/dist/v4.1.23/',
151    tarballUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz',
152    shasumsUrl: 'https://nodejs.org/dist/v4.1.23/SHASUMS256.txt',
153    versionDir: '4.1.23',
154    ia32: { libUrl: 'https://nodejs.org/dist/v4.1.23/win-x86/node.lib', libPath: 'win-x86/node.lib' },
155    x64: { libUrl: 'https://nodejs.org/dist/v4.1.23/win-x64/node.lib', libPath: 'win-x64/node.lib' },
156    arm64: { libUrl: 'https://nodejs.org/dist/v4.1.23/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
157  })
158})
159
160test('test process release - process.release ~ node@4.1.23 / corp build', function (t) {
161  t.plan(2)
162
163  var release = processRelease([], { opts: {} }, 'v4.1.23', {
164    name: 'node',
165    headersUrl: 'https://some.custom.location/node-v4.1.23-headers.tar.gz'
166  })
167
168  t.equal(release.semver.version, '4.1.23')
169  delete release.semver
170
171  t.deepEqual(release, {
172    version: '4.1.23',
173    name: 'node',
174    baseUrl: 'https://some.custom.location/',
175    tarballUrl: 'https://some.custom.location/node-v4.1.23-headers.tar.gz',
176    shasumsUrl: 'https://some.custom.location/SHASUMS256.txt',
177    versionDir: '4.1.23',
178    ia32: { libUrl: 'https://some.custom.location/win-x86/node.lib', libPath: 'win-x86/node.lib' },
179    x64: { libUrl: 'https://some.custom.location/win-x64/node.lib', libPath: 'win-x64/node.lib' },
180    arm64: { libUrl: 'https://some.custom.location/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
181  })
182})
183
184test('test process release - process.release ~ node@12.8.0 Windows', function (t) {
185  t.plan(2)
186
187  var release = processRelease([], { opts: {} }, 'v12.8.0', {
188    name: 'node',
189    sourceUrl: 'https://nodejs.org/download/release/v12.8.0/node-v12.8.0.tar.gz',
190    headersUrl: 'https://nodejs.org/download/release/v12.8.0/node-v12.8.0-headers.tar.gz',
191    libUrl: 'https://nodejs.org/download/release/v12.8.0/win-x64/node.lib'
192  })
193
194  t.equal(release.semver.version, '12.8.0')
195  delete release.semver
196
197  t.deepEqual(release, {
198    version: '12.8.0',
199    name: 'node',
200    baseUrl: 'https://nodejs.org/download/release/v12.8.0/',
201    tarballUrl: 'https://nodejs.org/download/release/v12.8.0/node-v12.8.0-headers.tar.gz',
202    shasumsUrl: 'https://nodejs.org/download/release/v12.8.0/SHASUMS256.txt',
203    versionDir: '12.8.0',
204    ia32: { libUrl: 'https://nodejs.org/download/release/v12.8.0/win-x86/node.lib', libPath: 'win-x86/node.lib' },
205    x64: { libUrl: 'https://nodejs.org/download/release/v12.8.0/win-x64/node.lib', libPath: 'win-x64/node.lib' },
206    arm64: { libUrl: 'https://nodejs.org/download/release/v12.8.0/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
207  })
208})
209
210test('test process release - process.release ~ node@12.8.0 Windows ARM64', function (t) {
211  t.plan(2)
212
213  var release = processRelease([], { opts: {} }, 'v12.8.0', {
214    name: 'node',
215    sourceUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/node-v12.8.0.tar.gz',
216    headersUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/node-v12.8.0-headers.tar.gz',
217    libUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/win-arm64/node.lib'
218  })
219
220  t.equal(release.semver.version, '12.8.0')
221  delete release.semver
222
223  t.deepEqual(release, {
224    version: '12.8.0',
225    name: 'node',
226    baseUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/',
227    tarballUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/node-v12.8.0-headers.tar.gz',
228    shasumsUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/SHASUMS256.txt',
229    versionDir: '12.8.0',
230    ia32: { libUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/win-x86/node.lib', libPath: 'win-x86/node.lib' },
231    x64: { libUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/win-x64/node.lib', libPath: 'win-x64/node.lib' },
232    arm64: { libUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
233  })
234})
235
236test('test process release - process.release ~ node@4.1.23 --target=0.10.40', function (t) {
237  t.plan(2)
238
239  var release = processRelease([], { opts: { target: '0.10.40' } }, 'v4.1.23', {
240    name: 'node',
241    headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz'
242  })
243
244  t.equal(release.semver.version, '0.10.40')
245  delete release.semver
246
247  t.deepEqual(release, {
248    version: '0.10.40',
249    name: 'node',
250    baseUrl: 'https://nodejs.org/dist/v0.10.40/',
251    tarballUrl: 'https://nodejs.org/dist/v0.10.40/node-v0.10.40.tar.gz',
252    shasumsUrl: 'https://nodejs.org/dist/v0.10.40/SHASUMS256.txt',
253    versionDir: '0.10.40',
254    ia32: { libUrl: 'https://nodejs.org/dist/v0.10.40/node.lib', libPath: 'node.lib' },
255    x64: { libUrl: 'https://nodejs.org/dist/v0.10.40/x64/node.lib', libPath: 'x64/node.lib' },
256    arm64: { libUrl: 'https://nodejs.org/dist/v0.10.40/arm64/node.lib', libPath: 'arm64/node.lib' }
257  })
258})
259
260test('test process release - process.release ~ node@4.1.23 --dist-url=https://foo.bar/baz', function (t) {
261  t.plan(2)
262
263  var release = processRelease([], { opts: { 'dist-url': 'https://foo.bar/baz' } }, 'v4.1.23', {
264    name: 'node',
265    headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz'
266  })
267
268  t.equal(release.semver.version, '4.1.23')
269  delete release.semver
270
271  t.deepEqual(release, {
272    version: '4.1.23',
273    name: 'node',
274    baseUrl: 'https://foo.bar/baz/v4.1.23/',
275    tarballUrl: 'https://foo.bar/baz/v4.1.23/node-v4.1.23-headers.tar.gz',
276    shasumsUrl: 'https://foo.bar/baz/v4.1.23/SHASUMS256.txt',
277    versionDir: '4.1.23',
278    ia32: { libUrl: 'https://foo.bar/baz/v4.1.23/win-x86/node.lib', libPath: 'win-x86/node.lib' },
279    x64: { libUrl: 'https://foo.bar/baz/v4.1.23/win-x64/node.lib', libPath: 'win-x64/node.lib' },
280    arm64: { libUrl: 'https://foo.bar/baz/v4.1.23/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
281  })
282})
283
284test('test process release - process.release ~ frankenstein@4.1.23', function (t) {
285  t.plan(2)
286
287  var release = processRelease([], { opts: {} }, 'v4.1.23', {
288    name: 'frankenstein',
289    headersUrl: 'https://frankensteinjs.org/dist/v4.1.23/frankenstein-v4.1.23-headers.tar.gz'
290  })
291
292  t.equal(release.semver.version, '4.1.23')
293  delete release.semver
294
295  t.deepEqual(release, {
296    version: '4.1.23',
297    name: 'frankenstein',
298    baseUrl: 'https://frankensteinjs.org/dist/v4.1.23/',
299    tarballUrl: 'https://frankensteinjs.org/dist/v4.1.23/frankenstein-v4.1.23-headers.tar.gz',
300    shasumsUrl: 'https://frankensteinjs.org/dist/v4.1.23/SHASUMS256.txt',
301    versionDir: 'frankenstein-4.1.23',
302    ia32: { libUrl: 'https://frankensteinjs.org/dist/v4.1.23/win-x86/frankenstein.lib', libPath: 'win-x86/frankenstein.lib' },
303    x64: { libUrl: 'https://frankensteinjs.org/dist/v4.1.23/win-x64/frankenstein.lib', libPath: 'win-x64/frankenstein.lib' },
304    arm64: { libUrl: 'https://frankensteinjs.org/dist/v4.1.23/win-arm64/frankenstein.lib', libPath: 'win-arm64/frankenstein.lib' }
305  })
306})
307
308test('test process release - process.release ~ frankenstein@4.1.23 --dist-url=http://foo.bar/baz/', function (t) {
309  t.plan(2)
310
311  var release = processRelease([], { opts: { 'dist-url': 'http://foo.bar/baz/' } }, 'v4.1.23', {
312    name: 'frankenstein',
313    headersUrl: 'https://frankensteinjs.org/dist/v4.1.23/frankenstein-v4.1.23.tar.gz'
314  })
315
316  t.equal(release.semver.version, '4.1.23')
317  delete release.semver
318
319  t.deepEqual(release, {
320    version: '4.1.23',
321    name: 'frankenstein',
322    baseUrl: 'http://foo.bar/baz/v4.1.23/',
323    tarballUrl: 'http://foo.bar/baz/v4.1.23/frankenstein-v4.1.23-headers.tar.gz',
324    shasumsUrl: 'http://foo.bar/baz/v4.1.23/SHASUMS256.txt',
325    versionDir: 'frankenstein-4.1.23',
326    ia32: { libUrl: 'http://foo.bar/baz/v4.1.23/win-x86/frankenstein.lib', libPath: 'win-x86/frankenstein.lib' },
327    x64: { libUrl: 'http://foo.bar/baz/v4.1.23/win-x64/frankenstein.lib', libPath: 'win-x64/frankenstein.lib' },
328    arm64: { libUrl: 'http://foo.bar/baz/v4.1.23/win-arm64/frankenstein.lib', libPath: 'win-arm64/frankenstein.lib' }
329  })
330})
331
332test('test process release - process.release ~ node@4.0.0-rc.4', function (t) {
333  t.plan(2)
334
335  var release = processRelease([], { opts: {} }, 'v4.0.0-rc.4', {
336    name: 'node',
337    headersUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz'
338  })
339
340  t.equal(release.semver.version, '4.0.0-rc.4')
341  delete release.semver
342
343  t.deepEqual(release, {
344    version: '4.0.0-rc.4',
345    name: 'node',
346    baseUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/',
347    tarballUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz',
348    shasumsUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/SHASUMS256.txt',
349    versionDir: '4.0.0-rc.4',
350    ia32: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x86/node.lib', libPath: 'win-x86/node.lib' },
351    x64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x64/node.lib', libPath: 'win-x64/node.lib' },
352    arm64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
353  })
354})
355
356test('test process release - process.release ~ node@4.0.0-rc.4 passed as argv[0]', function (t) {
357  t.plan(2)
358
359  // note the missing 'v' on the arg, it should normalise when checking
360  // whether we're on the default or not
361  var release = processRelease(['4.0.0-rc.4'], { opts: {} }, 'v4.0.0-rc.4', {
362    name: 'node',
363    headersUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz'
364  })
365
366  t.equal(release.semver.version, '4.0.0-rc.4')
367  delete release.semver
368
369  t.deepEqual(release, {
370    version: '4.0.0-rc.4',
371    name: 'node',
372    baseUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/',
373    tarballUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz',
374    shasumsUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/SHASUMS256.txt',
375    versionDir: '4.0.0-rc.4',
376    ia32: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x86/node.lib', libPath: 'win-x86/node.lib' },
377    x64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x64/node.lib', libPath: 'win-x64/node.lib' },
378    arm64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
379  })
380})
381
382test('test process release - process.release ~ node@4.0.0-rc.4 - bogus string passed as argv[0]', function (t) {
383  t.plan(2)
384
385  // additional arguments can be passed in on the commandline that should be ignored if they
386  // are not specifying a valid version @ position 0
387  var release = processRelease(['this is no version!'], { opts: {} }, 'v4.0.0-rc.4', {
388    name: 'node',
389    headersUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz'
390  })
391
392  t.equal(release.semver.version, '4.0.0-rc.4')
393  delete release.semver
394
395  t.deepEqual(release, {
396    version: '4.0.0-rc.4',
397    name: 'node',
398    baseUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/',
399    tarballUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz',
400    shasumsUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/SHASUMS256.txt',
401    versionDir: '4.0.0-rc.4',
402    ia32: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x86/node.lib', libPath: 'win-x86/node.lib' },
403    x64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x64/node.lib', libPath: 'win-x64/node.lib' },
404    arm64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
405  })
406})
407
408test('test process release - NODEJS_ORG_MIRROR', function (t) {
409  t.plan(2)
410
411  process.env.NODEJS_ORG_MIRROR = 'http://foo.bar'
412
413  var release = processRelease([], { opts: {} }, 'v4.1.23', {
414    name: 'node',
415    headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz'
416  })
417
418  t.equal(release.semver.version, '4.1.23')
419  delete release.semver
420
421  t.deepEqual(release, {
422    version: '4.1.23',
423    name: 'node',
424    baseUrl: 'http://foo.bar/v4.1.23/',
425    tarballUrl: 'http://foo.bar/v4.1.23/node-v4.1.23-headers.tar.gz',
426    shasumsUrl: 'http://foo.bar/v4.1.23/SHASUMS256.txt',
427    versionDir: '4.1.23',
428    ia32: { libUrl: 'http://foo.bar/v4.1.23/win-x86/node.lib', libPath: 'win-x86/node.lib' },
429    x64: { libUrl: 'http://foo.bar/v4.1.23/win-x64/node.lib', libPath: 'win-x64/node.lib' },
430    arm64: { libUrl: 'http://foo.bar/v4.1.23/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
431  })
432
433  delete process.env.NODEJS_ORG_MIRROR
434})
435