Fair enough. 

Now there are few things to improve in your unit-tests:

1) Test naming - use present tense in `it` descriptions, existing tests are using that convention. E.g.

```js
it('chooses latest by semver order', // etc
```

2) File naming

 - Existing tests (i.e. `test/npm-protocol.js`) do not add `.test` into file names. 
 - It is not clear which files contain pure unit-tests and which contain integration tests.

We can nest tests in `test/unit/server.js` and `test/integration/npm-protocol.js`. Can you come up with a better alternative?

(cc: @paolodm - the same problem of unit vs. integration tests applies to your pull request #22)

3) Test data naming - please don't use `test` as package name, it is rather ambiguous name. `test-package` or even `a-package-name` is much better (the latter is communicating the fact that any package name will work).

4) The way how your tests are structured makes it difficult to add new tests using different data (packages) in the future. The reason is that your tests rely on global/shared settings. It is ok to setup Server/Data mocks without specific data/behaviour in the `beforeEach` hook. However, each test should define the test data and mocked behaviour on its own. Example:

```js
it('Should choose latest by semver order', function () {
  givenPackageWithVersions('test-package', ['1.0.2-2', '1.0.2-10']);
  req.name = 'test-package';
  routes.get['/:name'](req, res);
  expect(res.json.firstCall.args[1]['dist-tags'].latest).to.equal('1.0.2-10');
});
```

5) This piece of code requires some effort to understand what it does, plus it is repeated many times:

```js
res.json.firstCall.args[1]
```

Please extract it into a helper function. Alternatively, set up sinon to save the json result to a variable and possibly assert that it was called only once.