mirror of
https://github.com/hanzoai/node-jsonwebtoken.git
synced 2026-09-24 17:00:48 +00:00
Fixed error message when empty string passed as expiresIn or notBefore option (#531)
* Fixed error message when empty string passed as expiresIn or notBefore option * Moved tests to option validation block
This commit is contained in:
committed by
Eduardo Diaz
parent
5ba7118db1
commit
e1af5cfd31
@@ -9,8 +9,8 @@ var isString = require('lodash.isstring');
|
||||
var once = require('lodash.once');
|
||||
|
||||
var sign_options_schema = {
|
||||
expiresIn: { isValid: function(value) { return isInteger(value) || isString(value); }, message: '"expiresIn" should be a number of seconds or string representing a timespan' },
|
||||
notBefore: { isValid: function(value) { return isInteger(value) || isString(value); }, message: '"notBefore" should be a number of seconds or string representing a timespan' },
|
||||
expiresIn: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '"expiresIn" should be a number of seconds or string representing a timespan' },
|
||||
notBefore: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '"notBefore" should be a number of seconds or string representing a timespan' },
|
||||
audience: { isValid: function(value) { return isString(value) || Array.isArray(value); }, message: '"audience" must be a string or array' },
|
||||
algorithm: { isValid: includes.bind(null, ['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512', 'HS256', 'HS384', 'HS512', 'none']), message: '"algorithm" must be a valid string enum value' },
|
||||
header: { isValid: isPlainObject, message: '"header" must be an object' },
|
||||
|
||||
+1
-10
@@ -29,6 +29,7 @@ describe('expires', function() {
|
||||
Infinity,
|
||||
NaN,
|
||||
' ',
|
||||
'',
|
||||
'invalid',
|
||||
[],
|
||||
['foo'],
|
||||
@@ -46,16 +47,6 @@ describe('expires', function() {
|
||||
});
|
||||
});
|
||||
|
||||
// TODO this should throw the same error as other invalid inputs
|
||||
it(`should error with with value ''`, function (done) {
|
||||
signWithExpiresIn('', {}, (err) => {
|
||||
testUtils.asyncCheck(done, () => {
|
||||
expect(err).to.be.instanceOf(Error);
|
||||
expect(err).to.have.property('message', 'val is not a non-empty string or a valid number. val=""');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// undefined needs special treatment because {} is not the same as {expiresIn: undefined}
|
||||
it('should error with with value undefined', function (done) {
|
||||
testUtils.signJWTHelper({}, undefined, {expiresIn: undefined, algorithm: 'none'}, (err) => {
|
||||
|
||||
+1
-10
@@ -28,6 +28,7 @@ describe('not before', function() {
|
||||
-Infinity,
|
||||
Infinity,
|
||||
NaN,
|
||||
'',
|
||||
' ',
|
||||
'invalid',
|
||||
[],
|
||||
@@ -46,16 +47,6 @@ describe('not before', function() {
|
||||
});
|
||||
});
|
||||
|
||||
// TODO this should throw the same error as other invalid inputs
|
||||
it(`should error with with value ''`, function (done) {
|
||||
signWithNotBefore('', {}, (err) => {
|
||||
testUtils.asyncCheck(done, () => {
|
||||
expect(err).to.be.instanceOf(Error);
|
||||
expect(err).to.have.property('message', 'val is not a non-empty string or a valid number. val=""');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// undefined needs special treatment because {} is not the same as {notBefore: undefined}
|
||||
it('should error with with value undefined', function (done) {
|
||||
testUtils.signJWTHelper({}, undefined, {notBefore: undefined, algorithm: 'none'}, (err) => {
|
||||
|
||||
Reference in New Issue
Block a user