unix.js
2.1 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// only run this test on windows
// pretending to be another platform is too hacky, since it breaks
// how the underlying system looks up module paths and runs
// child processes, and all that stuff is cached.
var tap = require('tap')
if (process.platform === 'win32') {
tap.plan(0, 'Skip unix tests, this is not unix')
process.exit(0)
}
// like unix, but funny
process.env.USER = 'sirUser'
process.env.HOME = '/home/sirUser'
process.env.HOSTNAME = 'my-machine'
process.env.TMPDIR = '/tmpdir'
process.env.TMP = '/tmp'
process.env.TEMP = '/temp'
process.env.PATH = '/opt/local/bin:/usr/local/bin:/usr/bin/:bin'
process.env.PS1 = '(o_o) $ '
process.env.EDITOR = 'edit'
process.env.VISUAL = 'visualedit'
process.env.SHELL = 'zsh'
tap.test('basic unix sanity test', function (t) {
var osenv = require('../osenv.js')
t.equal(osenv.user(), process.env.USER)
t.equal(osenv.home(), process.env.HOME)
t.equal(osenv.hostname(), process.env.HOSTNAME)
t.same(osenv.path(), process.env.PATH.split(':'))
t.equal(osenv.prompt(), process.env.PS1)
t.equal(osenv.tmpdir(), process.env.TMPDIR)
// mildly evil, but it's for a test.
process.env.TMPDIR = ''
delete require.cache[require.resolve('../osenv.js')]
var osenv = require('../osenv.js')
t.equal(osenv.tmpdir(), process.env.TMP)
process.env.TMP = ''
delete require.cache[require.resolve('../osenv.js')]
var osenv = require('../osenv.js')
t.equal(osenv.tmpdir(), process.env.TEMP)
process.env.TEMP = ''
delete require.cache[require.resolve('../osenv.js')]
var osenv = require('../osenv.js')
osenv.home = function () { return null }
t.equal(osenv.tmpdir(), '/tmp')
t.equal(osenv.editor(), 'edit')
process.env.EDITOR = ''
delete require.cache[require.resolve('../osenv.js')]
var osenv = require('../osenv.js')
t.equal(osenv.editor(), 'visualedit')
process.env.VISUAL = ''
delete require.cache[require.resolve('../osenv.js')]
var osenv = require('../osenv.js')
t.equal(osenv.editor(), 'vi')
t.equal(osenv.shell(), 'zsh')
process.env.SHELL = ''
delete require.cache[require.resolve('../osenv.js')]
var osenv = require('../osenv.js')
t.equal(osenv.shell(), 'bash')
t.end()
})