UNPKG

npm

Version:

a package manager for JavaScript

188 lines (168 loc) 3.95 kB
var fs = require('fs') var path = require('path') var mkdirp = require('mkdirp') var rimraf = require('rimraf') var mr = require('npm-registry-mock') var test = require('tap').test var common = require('../common-tap.js') var pkg = path.resolve(__dirname, 'access') var server var scoped = { name: '@scoped/pkg', version: '1.1.1' } var body = { access: 'public' } function mocks (server) { server.post('/-/package/@scoped%2fpkg/access', JSON.stringify(body)) .reply(200, { 'access': 'public' }) server.post('/-/package/@scoped%2fanother/access', JSON.stringify(body)) .reply(200, { 'access': 'public' }) } test('setup', function (t) { mkdirp(pkg, function (er) { t.ifError(er, pkg + ' made successfully') mr({port: common.port, plugin: mocks}, function (er, s) { server = s fs.writeFile( path.join(pkg, 'package.json'), JSON.stringify(scoped), function (er) { t.ifError(er, 'wrote package.json') t.end() } ) }) }) }) test('npm access on current package', function (t) { common.npm( [ 'access', 'public', '--registry', common.registry, '--loglevel', 'silent' ], { cwd: pkg }, function (er, code, stdout, stderr) { t.ifError(er, 'npm access') t.notOk(code, 'exited OK') t.notOk(stderr, 'no error output') t.end() } ) }) test('npm access on named package', function (t) { common.npm( [ 'access', 'public', '@scoped/another', '--registry', common.registry, '--loglevel', 'silent' ], { cwd: pkg }, function (er, code, stdout, stderr) { t.ifError(er, 'npm access') t.notOk(code, 'exited OK') t.notOk(stderr, 'no error output') t.end() } ) }) test('npm change access on unscoped package', function (t) { common.npm( [ 'access', 'restricted', 'yargs', '--registry', common.registry ], { cwd: pkg }, function (er, code, stdout, stderr) { t.ok(code, 'exited with Error') t.ok(stderr.match(/you can't change the access level of unscoped packages/)) t.end() } ) }) test('npm access add', function (t) { common.npm( [ 'access', 'add', '@scoped/another', '--registry', common.registry ], { cwd: pkg }, function (er, code, stdout, stderr) { t.ok(code, 'exited with Error') t.ok(stderr.match(/npm access add isn't implemented yet!/)) t.end() } ) }) test('npm access rm', function (t) { common.npm( [ 'access', 'rm', '@scoped/another', '--registry', common.registry ], { cwd: pkg }, function (er, code, stdout, stderr) { t.ok(code, 'exited with Error') t.ok(stderr.match(/npm access rm isn't implemented yet!/)) t.end() } ) }) test('npm access ls', function (t) { common.npm( [ 'access', 'ls', '@scoped/another', '--registry', common.registry ], { cwd: pkg }, function (er, code, stdout, stderr) { t.ok(code, 'exited with Error') t.ok(stderr.match(/npm access ls isn't implemented yet!/)) t.end() } ) }) test('npm access edit', function (t) { common.npm( [ 'access', 'edit', '@scoped/another', '--registry', common.registry ], { cwd: pkg }, function (er, code, stdout, stderr) { t.ok(code, 'exited with Error') t.ok(stderr.match(/npm access edit isn't implemented yet!/)) t.end() } ) }) test('npm access blerg', function (t) { common.npm( [ 'access', 'blerg', '@scoped/another', '--registry', common.registry ], { cwd: pkg }, function (er, code, stdout, stderr) { t.ok(code, 'exited with Error') t.ok(stderr.match(/Usage:/)) t.end() } ) }) test('cleanup', function (t) { t.pass('cleaned up') rimraf.sync(pkg) server.close() t.end() })