UNPKG

2.25 kBJavaScriptView Raw
1// only run this test on windows
2// pretending to be another platform is too hacky, since it breaks
3// how the underlying system looks up module paths and runs
4// child processes, and all that stuff is cached.
5if (process.platform === 'win32') {
6 console.log('TAP Version 13\n' +
7 '1..0\n' +
8 '# Skip unix tests, this is not unix\n')
9 return
10}
11var tap = require('tap')
12
13// like unix, but funny
14process.env.USER = 'sirUser'
15process.env.HOME = '/home/sirUser'
16process.env.HOSTNAME = 'my-machine'
17process.env.TMPDIR = '/tmpdir'
18process.env.TMP = '/tmp'
19process.env.TEMP = '/temp'
20process.env.PATH = '/opt/local/bin:/usr/local/bin:/usr/bin/:bin'
21process.env.PS1 = '(o_o) $ '
22process.env.EDITOR = 'edit'
23process.env.VISUAL = 'visualedit'
24process.env.SHELL = 'zsh'
25
26tap.test('basic unix sanity test', function (t) {
27 var osenv = require('../osenv.js')
28
29 t.equal(osenv.user(), process.env.USER)
30 t.equal(osenv.home(), process.env.HOME)
31 t.equal(osenv.hostname(), process.env.HOSTNAME)
32 t.same(osenv.path(), process.env.PATH.split(':'))
33 t.equal(osenv.prompt(), process.env.PS1)
34 t.equal(osenv.tmpdir(), process.env.TMPDIR)
35
36 // mildly evil, but it's for a test.
37 process.env.TMPDIR = ''
38 delete require.cache[require.resolve('../osenv.js')]
39 var osenv = require('../osenv.js')
40 t.equal(osenv.tmpdir(), process.env.TMP)
41
42 process.env.TMP = ''
43 delete require.cache[require.resolve('../osenv.js')]
44 var osenv = require('../osenv.js')
45 t.equal(osenv.tmpdir(), process.env.TEMP)
46
47 process.env.TEMP = ''
48 delete require.cache[require.resolve('../osenv.js')]
49 var osenv = require('../osenv.js')
50 osenv.home = function () { return null }
51 t.equal(osenv.tmpdir(), '/tmp')
52
53 t.equal(osenv.editor(), 'edit')
54 process.env.EDITOR = ''
55 delete require.cache[require.resolve('../osenv.js')]
56 var osenv = require('../osenv.js')
57 t.equal(osenv.editor(), 'visualedit')
58
59 process.env.VISUAL = ''
60 delete require.cache[require.resolve('../osenv.js')]
61 var osenv = require('../osenv.js')
62 t.equal(osenv.editor(), 'vi')
63
64 t.equal(osenv.shell(), 'zsh')
65 process.env.SHELL = ''
66 delete require.cache[require.resolve('../osenv.js')]
67 var osenv = require('../osenv.js')
68 t.equal(osenv.shell(), 'bash')
69
70 t.end()
71})