1
0
mirror of https://github.com/verdaccio/verdaccio.git synced 2025-02-21 07:29:37 +01:00

refactor: small changes in the code

- describe message tests;
- remove condition duplicate;
- add logger in exceptions;
This commit is contained in:
Ramon Henrique Ornelas 2017-09-30 21:07:45 -03:00
parent f7ad05ec86
commit 231a4d7227
2 changed files with 30 additions and 20 deletions

@ -239,17 +239,12 @@ class ProxyStorage {
*/
_setAuth(headers) {
if (_.isUndefined(this.config.auth)) {
return headers;
}
// if header Authorization assigns this has precedence
if (headers['authorization']) {
if (_.isNil(this.config.auth) || headers['authorization']) {
return headers;
}
if (!_.isObject(this.config.auth)) {
throw new Error('Auth invalid');
this._throwErrorAuth('Auth invalid');
}
// get NPM_TOKEN http://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules
@ -261,8 +256,8 @@ class ProxyStorage {
token = process.env[this.config.auth.token_env];
}
if (_.isUndefined(token) || _.isNil(token)) {
throw new Error('Token is required');
if (_.isNil(token)) {
this._throwErrorAuth('Token is required');
}
// define type Auth allow basic and bearer
@ -271,6 +266,16 @@ class ProxyStorage {
return headers;
}
/**
* @param {string} message
* @throws {Error}
* @private
*/
_throwErrorAuth(message) {
this.logger.error(message);
throw new Error(message);
}
/**
* Assign Header authorization with type authentication
* @param {Object} headers
@ -280,7 +285,7 @@ class ProxyStorage {
*/
_setHeaderAuthorization(headers, type, token) {
if (type !== 'bearer' && type !== 'basic') {
throw new Error(`Auth type '${type}' not allowed`);
this._throwErrorAuth(`Auth type '${type}' not allowed`);
}
type = _.upperFirst(type);

@ -24,13 +24,13 @@ module.exports = function () {
describe('uplink auth test', function () {
it('if set headers empty', function () {
it('if set headers empty should return default headers', function () {
const headers = setHeaders();
assert.equal(Object.keys(headers).length, 3);
});
it('invalid auth', function () {
it('if assigns value invalid to attribute auth', function () {
const fnError = function () {
setHeaders({
auth: ''
@ -40,15 +40,16 @@ module.exports = function () {
assert.throws(fnError, 'Auth invalid');
});
it('if set headers authorization', function () {
it('if assigns the header authorization', function () {
const headers = setHeaders({}, {
'authorization': 'basic Zm9vX2Jhcg=='
});
assert.equal(Object.keys(headers).length, 4);
assert.equal(headers['authorization'], 'basic Zm9vX2Jhcg==');
});
it('if set headers authorization precendence token', function () {
it('if assigns headers authorization and token the header precedes', function () {
const headers = setHeaders({
auth: {
type: 'bearer',
@ -61,29 +62,31 @@ module.exports = function () {
assert.equal(headers['authorization'], 'basic tokenBasic');
});
it('basic auth test', function () {
it('set type auth basic', function () {
const headers = setHeaders({
auth: {
type: 'basic',
token: 'Zm9vX2Jhcg=='
}
});
assert.equal(Object.keys(headers).length, 4);
assert.equal(headers['authorization'], 'Basic Zm9vX2Jhcg==');
});
it('basic auth test', function () {
it('set type auth bearer', function () {
const headers = setHeaders({
auth: {
type: 'bearer',
token: 'Zm9vX2Jhcf==='
}
});
assert.equal(Object.keys(headers).length, 4);
assert.equal(headers['authorization'], 'Bearer Zm9vX2Jhcf===');
});
it('invalid auth type test', function () {
it('set auth type invalid', function () {
const fnError = function() {
setHeaders({
auth: {
@ -96,18 +99,19 @@ module.exports = function () {
assert.throws(fnError, `Auth type 'null' not allowed`);
});
it('get NPM_TOKEN process test', function () {
it('set auth with NPM_TOKEN', function () {
process.env.NPM_TOKEN = 'myToken';
const headers = setHeaders({
auth: {
type: 'bearer'
}
});
assert.equal(headers['authorization'], 'Bearer myToken');
delete process.env.NPM_TOKEN;
});
it('get name variable assigns process.env test', function () {
it('set auth with token name and assigns in env', function () {
process.env.NPM_TOKEN_TEST = 'myTokenTest';
const headers = setHeaders({
auth: {
@ -115,12 +119,13 @@ module.exports = function () {
token_env: 'NPM_TOKEN_TEST'
}
});
assert.equal(headers['authorization'], 'Basic myTokenTest');
delete process.env.NPM_TOKEN_TEST;
});
it('token is required', function () {
it('if token not set', function () {
const fnError = function() {
setHeaders({
auth: {