Initial commit
[yaffs-website] / node_modules / osenv / test / unix.js
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.
5 var tap = require('tap')
6
7
8 if (process.platform === 'win32') {
9   tap.plan(0, 'Skip unix tests, this is not unix')
10   process.exit(0)
11 }
12
13 // like unix, but funny
14 process.env.USER = 'sirUser'
15 process.env.HOME = '/home/sirUser'
16 process.env.HOSTNAME = 'my-machine'
17 process.env.TMPDIR = '/tmpdir'
18 process.env.TMP = '/tmp'
19 process.env.TEMP = '/temp'
20 process.env.PATH = '/opt/local/bin:/usr/local/bin:/usr/bin/:bin'
21 process.env.PS1 = '(o_o) $ '
22 process.env.EDITOR = 'edit'
23 process.env.VISUAL = 'visualedit'
24 process.env.SHELL = 'zsh'
25
26 tap.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 })