2 var path = require("path")
4 var test = require('tap').test
5 var mkdirp = require('mkdirp')
6 var rimraf = require('rimraf')
7 var common = require('../common-tap')
8 var mr = require('npm-registry-mock')
10 var pkg = path.join(__dirname, "prepublish_package")
16 mkdirp.sync(path.join(pkg, 'cache'))
19 path.join(pkg, 'package.json'),
21 name: '@bigco/publish-organized',
27 test('setup', function (t) {
29 mr({port: common.port, throwOnUnmatched: true}, function (err, s) {
30 t.ifError(err, 'registry mocked successfully')
36 test('npm publish should honor scoping', function (t) {
37 server.filteringRequestBody(verify)
38 .put('/@bigco%2fpublish-organized', true)
39 .reply(201, {ok: true})
43 'cache=' + path.join(pkg, 'cache'),
44 'registry=http://nonexistent.lvh.me',
45 '//localhost:1337/:username=username',
46 '//localhost:1337/:_password=' + new Buffer('password').toString('base64'),
47 '//localhost:1337/:email=' + 'ogd@aoaioxxysz.net',
48 '@bigco:registry=' + common.registry
50 var configFile = path.join(pkg, '.npmrc')
52 fs.writeFileSync(configFile, configuration.join('\n') + '\n')
54 common.npm(['publish'], {'cwd': pkg}, function (err, code, stdout, stderr) {
56 t.is(code, 0, 'published without error')
61 function verify (body) {
62 t.doesNotThrow(function () {
63 var parsed = JSON.parse(body)
64 var current = parsed.versions["1.2.5"]
67 require(path.resolve(__dirname, "../../package.json")).version,
68 "npm version is correct"
73 process.versions.node,
74 "node version is correct"
76 }, "converted body back into object")
82 test('cleanup', function (t) {
89 process.chdir(__dirname)