diff options
Diffstat (limited to 'deps/npm/test/tap/ping.js')
-rw-r--r-- | deps/npm/test/tap/ping.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/deps/npm/test/tap/ping.js b/deps/npm/test/tap/ping.js new file mode 100644 index 000000000..13fc4bec9 --- /dev/null +++ b/deps/npm/test/tap/ping.js @@ -0,0 +1,68 @@ +var fs = require('fs') +var path = require('path') + +var mkdirp = require('mkdirp') +var mr = require('npm-registry-mock') +var rimraf = require('rimraf') +var test = require('tap').test + +var common = require('../common-tap.js') + +var pkg = path.resolve(__dirname, 'ping') +var opts = { cwd: pkg } + +var outfile = path.join(pkg, '_npmrc') + +var contents = function () { +}.toString().split('\n').slice(1, -1).join('\n') + +var pingResponse = { + host: 'registry.npmjs.org', + ok: true, + username: null, + peer: 'example.com' +} + +function mocks (server) { + server.get('/-/ping?write=true').reply(200, JSON.stringify(pingResponse)) +} + +test('setup', function (t) { + cleanup() + setup() + t.end() +}) + +test('npm ping', function (t) { + mr({ port: common.port, plugin: mocks }, function (err, s) { + if (err) throw err + + common.npm([ + 'ping', + '--registry', common.registry, + '--loglevel', 'silent', + '--userconfig', outfile + ], opts, function (err, code, stdout) { + s.close() + t.ifError(err, 'no error output') + t.notOk(code, 'exited OK') + + t.same(JSON.parse(stdout), pingResponse) + t.end() + }) + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) + +function setup () { + mkdirp.sync(pkg) + fs.writeFileSync(outfile, contents) +} + +function cleanup () { + rimraf.sync(pkg) +} |