'use strict'; let assert = require('assert'); function readfile(x) { return require('fs').readFileSync(__dirname + '/' + x); } module.exports = function() { let server = process.server; let server2 = process.server2; it('testing anti-loop', function() { return server2.getPackage('testloop') .status(404) .body_error(/no such package/); }) ;['fwd'].forEach(function(pkg) { let prefix = pkg + ': '; pkg = 'test' + pkg; describe(pkg, function() { before(function() { return server.putPackage(pkg, require('./lib/package')(pkg)) .status(201) .body_ok(/created new package/); }); it(prefix+'creating new package', function() {}); describe(pkg, function() { before(function() { return server.putVersion(pkg, '0.1.1', require('./lib/package')(pkg)) .status(201) .body_ok(/published/); }); it(prefix+'uploading new package version', function() {}); it(prefix+'uploading incomplete tarball', function() { return server.putTarballIncomplete(pkg, pkg+'.bad', readfile('fixtures/binary'), 3000); }); describe('tarball', function() { before(function() { return server.putTarball(pkg, pkg+'.file', readfile('fixtures/binary')) .status(201) .body_ok(/.*/); }); it(prefix+'uploading new tarball', function() {}); it(prefix+'downloading tarball from server1', function() { return server.getTarball(pkg, pkg+'.file') .status(200) .then(function(body) { assert.deepEqual(body, readfile('fixtures/binary')); }); }); }); }); }); }); };