You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

60 lines
1.3 KiB

var common = require("../common-tap")
, test = require("tap").test
, path = require("path")
, rimraf = require("rimraf")
, mkdirp = require("mkdirp")
, pkg = path.resolve(__dirname, "startstop")
, cache = path.resolve(pkg, "cache")
, tmp = path.resolve(pkg, "tmp")
, opts = { cwd: pkg }
function testOutput (t, command, er, code, stdout, stderr) {
t.notOk(code, "npm " + command + " exited with code 0")
if (stderr)
throw new Error("npm " + command + " stderr: " + stderr.toString())
stdout = stdout.trim().split(/\n|\r/)
stdout = stdout[stdout.length - 1]
t.equal(stdout, command)
t.end()
}
function cleanup () {
rimraf.sync(cache)
rimraf.sync(tmp)
}
test("setup", function (t) {
cleanup()
mkdirp.sync(cache)
mkdirp.sync(tmp)
t.end()
})
test("npm start", function (t) {
common.npm(["start"], opts, testOutput.bind(null, t, "start"))
})
test("npm stop", function (t) {
common.npm(["stop"], opts, testOutput.bind(null, t, "stop"))
})
test("npm restart", function (t) {
common.npm(["restart"], opts, function (er, c, stdout) {
if (er)
throw er
var output = stdout.split("\n").filter(function (val) {
return val.match(/^s/)
})
t.same(output.sort(), ["start", "stop"].sort())
t.end()
})
})
test("cleanup", function (t) {
cleanup()
t.end()
})