Files
cnpmjs.org/test/middleware/proxy_to_npm.test.js
fengmk2 94dc13088c fix: should sync missing public scoped package on install (#946)
* fix: should sync missing public scoped package on install

closes #938

* refactor: sync all scoped packages when config.scopes is empty

* test: test on node 6
2016-06-05 23:34:10 +08:00

63 lines
1.7 KiB
JavaScript

'use strict';
/**
* Module dependencies.
*/
var request = require('supertest');
var mm = require('mm');
var app = require('../../servers/registry');
var config = require('../../config');
describe('test/middleware/proxy_to_npm.test.js', () => {
beforeEach(() => {
mm(config, 'syncModel', 'none');
});
afterEach(mm.restore);
describe('package', () => {
it('should proxy to source registry when package not exists', done => {
request(app.listen())
.get('/ms')
.expect('location', config.sourceNpmRegistry + '/ms')
.expect(302, done);
});
it('should proxy to source registry when package is not local', done => {
request(app.listen())
.get('/baidu?write=true')
.expect('location', config.sourceNpmRegistry + '/baidu?write=true')
.expect(302, done);
});
it('should not proxy to source registry when package is private scoped', done => {
request(app.listen())
.get('/@cnpmtest/test-package-name')
.expect(404, done);
});
it('should proxy to source registry when package is public scoped', done => {
request(app.listen())
.get('/@jkroso/type')
.expect('Location', 'https://registry.npmjs.com/@jkroso/type')
.expect(302, done);
});
});
describe('dist-tags', () => {
it('should proxy to source registry when package not exists', done => {
request(app.listen())
.get('/-/package/ms/dist-tags')
.expect('location', config.sourceNpmRegistry + '/-/package/ms/dist-tags')
.expect(302, done);
});
it('should dont proxy scoped package', done => {
request(app.listen())
.get('/-/package/@scoped/ms/dist-tags')
.expect(404, done);
});
});
});