diff --git a/lib/types/number/index.js b/lib/types/number/index.js index bfff4b045..9789e0a2a 100644 --- a/lib/types/number/index.js +++ b/lib/types/number/index.js @@ -90,7 +90,7 @@ internals.Number = class extends Any { if (isNumber) { if (!this._flags.unsafe && - (value >= Number.MAX_SAFE_INTEGER || value <= Number.MIN_SAFE_INTEGER)) { + (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER)) { result.errors = this.createError('number.unsafe', { value }, state, options); } } diff --git a/test/types/number.js b/test/types/number.js index 4089c2d4c..7125d940c 100644 --- a/test/types/number.js +++ b/test/types/number.js @@ -1414,6 +1414,18 @@ describe('number', () => { }); }); + describe('safe', () => { + + it('should accept safe numbers', () => { + + const t = Joi.number(); + Helper.validate(t, [ + [Number.MAX_SAFE_INTEGER, true, null, Number.MAX_SAFE_INTEGER], + [Number.MIN_SAFE_INTEGER, true, null, Number.MIN_SAFE_INTEGER], + ]); + }); + }); + describe('min()', () => { it('throws when limit is not a number', () => {