https://github.com/npm/npm-registry-mock
mock the npm registry
https://github.com/npm/npm-registry-mock
npm-cli
Last synced: 5 months ago
JSON representation
mock the npm registry
- Host: GitHub
- URL: https://github.com/npm/npm-registry-mock
- Owner: npm
- License: other
- Archived: true
- Created: 2013-07-10T20:57:05.000Z (almost 13 years ago)
- Default Branch: main
- Last Pushed: 2022-12-10T21:08:09.000Z (over 3 years ago)
- Last Synced: 2024-10-01T16:06:33.965Z (over 1 year ago)
- Topics: npm-cli
- Language: JavaScript
- Homepage:
- Size: 517 KB
- Stars: 27
- Watchers: 24
- Forks: 16
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# npm-registry-mock
> **Warning**: This package is deprecated and the repo is archived. The `npm/cli` now uses https://github.com/npm/cli/tree/latest/mock-registry to mock registry requests for tests.
## Mocked Packages
Currently mocked packages are:
`underscore` at 1.3.1, 1.3.3 and 1.5.1 while version 1.5.1 is the latest in this mocked registry.
`request` at 0.9.0, 0.9.5 and 2.27.0 while version 2.27.0 is the latest in this mocked registry.
`test-package-with-one-dep` at 0.0.0, with mocked dependency `test-package@0.0.0`.
`npm-test-peer-deps` at 0.0.0, with a peer dependency on `request@0.9.x` and a dependency on `underscore@1.3.1`.
`test-repo-url-http` at 0.0.0
`test-repo-url-https` at 0.0.1
`test-repo-url-ssh` at 0.0.1
`mkdirp` at 0.3.5
`optimist` at 0.6.0
`clean` at 2.1.6
`async` at 0.2.9, 0.2.10
`checker` at 0.5.1, 0.5.2
## Usage
Installing underscore 1.3.1:
```javascript
var mr = require("npm-registry-mock")
mr({port: 1331}, function (err, s) {
npm.load({registry: "http://localhost:1331"}, function () {
npm.commands.install("/tmp", "underscore@1.3.1", function (err) {
// assert npm behaves right...
s.close() // shutdown server
})
})
})
```
Defining custom mock routes:
```javascript
var mr = require("npm-registry-mock")
var customMocks = {
"get": {
"/mypackage": [500, {"ente" : true}]
}
}
mr({port: 1331, mocks: customMocks}, function (err, s) {
npm.load({registry: "http://localhost:1331"}, function () {
npm.commands.install("/tmp", "mypackage", function (err) {
// assert npm behaves right with an 500 error as response...
s.close() // shutdown server
})
})
})
```
Limit the requests for each route:
```javascript
mr({
port: 1331,
minReq: 1,
maxReq: 5
}, function (err, s) {
```
## Adding a new fixture
Although ideally we stick with the packages already mocked when writing new tests, in some cases it can be necessary to recreate a certain pathological or unusual scenario in the mock registry. In that case you can run
```sh
$ ./add-fixture.sh my-weird-package 1.2.3
```
to add that package to the fixtures directory.
## Breaking Changes for 1.0
- the callback returns `err, server` now, instead of just server (https://github.com/npm/npm-registry-mock/issues/20)
- options must be of type `object`
- a "plugin" is injected via options.plugin, not as a mock being a function
- a plugin does not override the default routes any more