aboutsummaryrefslogtreecommitdiff
path: root/node_modules/spawn-wrap/test/win-rebase.js
blob: b9d09fe0b543dc21a4577c0445ff44d3064cf79c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var t = require('tap')
var winRebase = require('../lib/win-rebase')

t.test('it replaces path to node bin', function (t) {
  var result = winRebase('C:\\Program Files\\nodejs\\node.exe', 'C:\\foo')
  t.equal(result, 'C:\\foo')
  t.done()
})

t.test('it does not replace path if it references an unknown bin', function (t) {
  var result = winRebase('C:\\Program Files\\nodejs\\banana', 'C:\\foo')
  t.equal(result, 'C:\\Program Files\\nodejs\\banana')
  t.done()
})

t.test('replaces node bin and leaves the script being executed', function (t) {
  var result = winRebase('C:\\Program Files\\nodejs\\node.exe foo.js', 'C:\\foo')
  t.equal(result, 'C:\\foo foo.js')
  t.done()
})

t.test('handles a quote', function (t) {
  var result = winRebase('"C:\\Program Files\\nodejs\\node.exe" "foo.js"', 'C:\\foo')
  t.equal(result, '"C:\\foo" "foo.js"')
  t.end()
})

t.test('handles many quotes', function (t) {
  var result = winRebase('""C:\\Program Files\\nodejs\\node.exe" "foo.js""', 'C:\\foo')
  t.equal(result, '""C:\\foo" "foo.js""')
  t.end()
})

t.test('handles npm invocations', function (t) {
  var result = winRebase('""npm" "install""',
                         'C:\\foo',
                         function() { return 'C:\\path-to-npm\\npm' })
  t.equal(result, '""C:\\foo "C:\\path-to-npm\\node_modules\\npm\\bin\\npm-cli.js"" "install""')
  t.end()
})