Skip to content

Commit

Permalink
Add update --save/--save-dev tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
timoxley committed May 10, 2014
1 parent cb29598 commit 1f108b8
Show file tree
Hide file tree
Showing 4 changed files with 99 additions and 0 deletions.
87 changes: 87 additions & 0 deletions test/tap/update-save.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
var common = require("../common-tap.js")
var test = require("tap").test
var npm = require("../../")
var mkdirp = require("mkdirp")
var rimraf = require("rimraf")
var fs = require('fs')
var path = require('path')
var mr = require("npm-registry-mock")

var PKG_DIR = path.resolve(__dirname, "update-save")
var PKG = path.resolve(PKG_DIR, "package.json")
var CACHE_DIR = path.resolve(PKG_DIR, "cache")
var MODULES_DIR = path.resolve(PKG_DIR, "node_modules")

var EXEC_OPTS = {
cwd: PKG_DIR,
stdio: 'ignore'
}

var DEFAULT_PKG = {
"name": "update-save-example",
"version": "1.2.3",
"dependencies": {
"mkdirp": "~0.3.0"
},
"devDependencies": {
"underscore": "~1.3.1"
}
}

var s = undefined

test('setup', function (t) {
resetPackage()

mr(common.port, function (server) {
npm.load({cache: CACHE_DIR, registry: common.registry}, function (err) {
t.ifError(err)
s = server
t.end()
})
})
})

test("update regular dependencies only", function (t) {
resetPackage()

common.npm(['update', '--save'], EXEC_OPTS, function (err, code) {
t.ifError(err)
t.equal(code, 0)
var pkgdata = JSON.parse(fs.readFileSync(PKG, 'utf8'))
t.deepEqual(pkgdata.dependencies, {mkdirp: '^0.3.5'}, 'only dependencies updated')
t.deepEqual(pkgdata.devDependencies, {underscore: '~1.3.1'}, 'dev dependencies should be untouched')
s.close()
t.end()
})
})

test("update devDependencies only", function (t) {
resetPackage()

common.npm(['update', '--save-dev'], EXEC_OPTS, function (err, code) {
t.ifError(err)
t.equal(code, 0)
var pkgdata = JSON.parse(fs.readFileSync(PKG, 'utf8'))
t.deepEqual(pkgdata.devDependencies, {underscore: '^1.3.3'}, 'dev dependencies should be updated')
t.deepEqual(pkgdata.dependencies, {mkdirp: '~0.3.0'}, 'dependencies should be untouched')
t.end()
})
})


function resetPackage() {
rimraf.sync(CACHE_DIR)
rimraf.sync(MODULES_DIR)
mkdirp.sync(CACHE_DIR)

fs.writeFileSync(PKG, JSON.stringify(DEFAULT_PKG, null, 2), 'ascii')
}

test("cleanup", function (t) {
resetPackage() // restore package.json
rimraf.sync(CACHE_DIR)
rimraf.sync(MODULES_DIR)
t.end()
})

1 change: 1 addition & 0 deletions test/tap/update-save/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# just a test
1 change: 1 addition & 0 deletions test/tap/update-save/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = true
10 changes: 10 additions & 0 deletions test/tap/update-save/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"name": "update-save-example",
"version": "1.2.3",
"dependencies": {
"mkdirp": "~0.3.0"
},
"devDependencies": {
"underscore": "~1.3.1"
}
}

0 comments on commit 1f108b8

Please sign in to comment.