diff options
Diffstat (limited to 'deps/npm/test/tap/shrinkwrap-lifecycle.js')
-rw-r--r-- | deps/npm/test/tap/shrinkwrap-lifecycle.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/deps/npm/test/tap/shrinkwrap-lifecycle.js b/deps/npm/test/tap/shrinkwrap-lifecycle.js new file mode 100644 index 00000000000..0e84259667c --- /dev/null +++ b/deps/npm/test/tap/shrinkwrap-lifecycle.js @@ -0,0 +1,55 @@ +var fs = require('graceful-fs') +var path = require('path') + +var mkdirp = require('mkdirp') +var osenv = require('osenv') +var rimraf = require('rimraf') +var test = require('tap').test + +var common = require('../common-tap.js') +var pkg = path.resolve(__dirname, 'shrinkwrap-lifecycle') + +test('npm shrinkwrap execution order', function (t) { + setup() + fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ + author: 'Simen Bekkhus', + name: 'shrinkwrap-lifecycle', + shrinkwrap: '0.0.0', + description: 'Test for npm shrinkwrap execution order', + scripts: { + preshrinkwrap: 'echo this happens first', + shrinkwrap: 'echo this happens second', + postshrinkwrap: 'echo this happens third' + } + }), 'utf8') + common.npm(['shrinkwrap'], [], function (err, code, stdout) { + if (err) throw err + + var indexOfFirst = stdout.indexOf('echo this happens first') + var indexOfSecond = stdout.indexOf('echo this happens second') + var indexOfThird = stdout.indexOf('wrote npm-shrinkwrap.json') + var indexOfFourth = stdout.indexOf('echo this happens third') + + t.ok(indexOfFirst >= 0) + t.ok(indexOfSecond >= 0) + t.ok(indexOfThird >= 0) + t.ok(indexOfFourth >= 0) + + t.ok(indexOfFirst < indexOfSecond) + t.ok(indexOfSecond < indexOfThird) + t.ok(indexOfThird < indexOfFourth) + + t.end() + }) +}) + +test('cleanup', function (t) { + process.chdir(osenv.tmpdir()) + rimraf.sync(pkg) + t.end() +}) + +function setup () { + mkdirp.sync(pkg) + process.chdir(pkg) +} |