]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/startstop.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / tap / startstop.js
1 var fs = require('graceful-fs')
2 var path = require('path')
3
4 var mkdirp = require('mkdirp')
5 var osenv = require('osenv')
6 var rimraf = require('rimraf')
7 var test = require('tap').test
8
9 var common = require('../common-tap')
10
11 var pkg = path.resolve(__dirname, 'startstop')
12
13 var EXEC_OPTS = { cwd: pkg }
14
15 var json = {
16   name: 'startstop',
17   version: '1.2.3',
18   scripts: {
19     start: 'node -e \"console.log(\'start\')\"',
20     stop: 'node -e \"console.log(\'stop\')\"'
21   }
22 }
23
24 function testOutput (t, command, er, code, stdout, stderr) {
25   t.notOk(code, 'npm ' + command + ' exited with code 0')
26
27   if (stderr) throw new Error('npm ' + command + ' stderr: ' + stderr.toString())
28
29   stdout = stdout.trim().split(/\n|\r/)
30   stdout = stdout[stdout.length - 1]
31   t.equal(stdout, command)
32   t.end()
33 }
34
35 test('setup', function (t) {
36   cleanup()
37   mkdirp.sync(pkg)
38   fs.writeFileSync(
39     path.join(pkg, 'package.json'),
40     JSON.stringify(json, null, 2)
41   )
42   t.end()
43 })
44
45 test('npm start', function (t) {
46   common.npm(['start'], EXEC_OPTS, testOutput.bind(null, t, 'start'))
47 })
48
49 test('npm stop', function (t) {
50   common.npm(['stop'], EXEC_OPTS, testOutput.bind(null, t, 'stop'))
51 })
52
53 test('npm restart', function (t) {
54   common.npm(['restart'], EXEC_OPTS, function (er, c, stdout) {
55     if (er) throw er
56
57     var output = stdout.split('\n').filter(function (val) {
58       return val.match(/^s/)
59     })
60
61     t.same(output.sort(), ['start', 'stop'].sort())
62     t.end()
63   })
64 })
65
66 test('cleanup', function (t) {
67   cleanup()
68   t.end()
69 })
70
71 function cleanup () {
72   process.chdir(osenv.tmpdir())
73   rimraf.sync(pkg)
74 }