]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/legacy-dir-bin.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / tap / legacy-dir-bin.js
1 'use strict'
2 var test = require('tap').test
3 var common = require('../common-tap.js')
4 var path = require('path')
5 var rimraf = require('rimraf')
6 var mkdirp = require('mkdirp')
7 var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
8 var fixturepath = path.resolve(basepath, 'npm-test-dir-bin')
9 var modulepath = path.resolve(basepath, 'node_modules')
10 var installedpath = path.resolve(modulepath, 'npm-test-dir-bin')
11 var Tacks = require('tacks')
12 var File = Tacks.File
13 var Dir = Tacks.Dir
14 var fixture = new Tacks(
15   Dir({
16     bin: Dir({
17       'dir-bin': File(
18         '#!/usr/bin/env node\n' +
19         "console.log('test ran ok')\n"
20       )
21     }),
22     'package.json': File({
23       name: 'npm-test-dir-bin',
24       version: '1.2.5',
25       directories: {
26         bin: './bin'
27       },
28       scripts: {
29         test: 'node test.js'
30       }
31     }),
32     'test.js': File(
33       "require('child_process').exec('dir-bin', { env: process.env },\n" +
34       '  function (err, stdout, stderr) {\n' +
35       "    if (err && err.code) throw new Error('exited badly with code = ' + err.code)\n" +
36       '    console.log(stdout)\n' +
37       '    console.error(stderr)\n' +
38       '  }\n' +
39       ')\n'
40     )
41   })
42 )
43 test('setup', function (t) {
44   setup()
45   t.done()
46 })
47 test('dir-bin', function (t) {
48   common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest)
49   function installCheckAndTest (err, code, stdout, stderr) {
50     if (err) throw err
51     t.is(code, 0, 'install went ok')
52     common.npm(['test'], {cwd: installedpath}, testCheckAndRemove)
53   }
54   function testCheckAndRemove (err, code, stdout, stderr) {
55     t.ifError(err, 'npm test on array bin')
56     t.equal(code, 0, 'exited OK')
57     t.equal(stderr.trim(), '', 'no error output')
58     t.match(stdout, /test ran ok/, 'child script ran properly')
59     common.npm(['rm', fixturepath], {cwd: basepath}, removeCheckAndDone)
60   }
61   function removeCheckAndDone (err, code, stdout, stderr) {
62     if (err) throw err
63     t.is(code, 0, 'remove went ok')
64     t.done()
65   }
66 })
67 test('cleanup', function (t) {
68   cleanup()
69   t.done()
70 })
71 function setup () {
72   cleanup()
73   fixture.create(fixturepath)
74   mkdirp.sync(modulepath)
75 }
76 function cleanup () {
77   fixture.remove(fixturepath)
78   rimraf.sync(basepath)
79 }