joi 4.6.2 → 4.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/.c9/.nakignore +17 -0
  2. package/.c9/metadata/tab0 +1 -0
  3. package/.c9/metadata/workspace/.c9/project.settings +1 -0
  4. package/.c9/metadata/workspace/.travis.yml +1 -0
  5. package/.c9/metadata/workspace/Makefile +1 -0
  6. package/.c9/metadata/workspace/README.md +1 -0
  7. package/.c9/metadata/workspace/lib/any.js +1 -0
  8. package/.c9/metadata/workspace/lib/array.js +1 -0
  9. package/.c9/metadata/workspace/lib/binary.js +1 -0
  10. package/.c9/metadata/workspace/lib/boolean.js +1 -0
  11. package/.c9/metadata/workspace/lib/cast.js +1 -0
  12. package/.c9/metadata/workspace/lib/date.js +1 -0
  13. package/.c9/metadata/workspace/lib/errors.js +1 -0
  14. package/.c9/metadata/workspace/lib/function.js +1 -0
  15. package/.c9/metadata/workspace/lib/index.js +1 -0
  16. package/.c9/metadata/workspace/lib/language.js +1 -0
  17. package/.c9/metadata/workspace/lib/number.js +1 -0
  18. package/.c9/metadata/workspace/lib/object.js +1 -0
  19. package/.c9/metadata/workspace/lib/string.js +1 -0
  20. package/.c9/metadata/workspace/package.json +1 -0
  21. package/.c9/metadata/workspace/test/alternatives.js +1 -0
  22. package/.c9/metadata/workspace/test/any.js +1 -0
  23. package/.c9/metadata/workspace/test/array.js +1 -0
  24. package/.c9/metadata/workspace/test/binary.js +1 -0
  25. package/.c9/metadata/workspace/test/boolean.js +1 -0
  26. package/.c9/metadata/workspace/test/date.js +1 -0
  27. package/.c9/metadata/workspace/test/errors.js +1 -0
  28. package/.c9/metadata/workspace/test/function.js +1 -0
  29. package/.c9/metadata/workspace/test/helper.js +1 -0
  30. package/.c9/metadata/workspace/test/index.js +1 -0
  31. package/.c9/metadata/workspace/test/number.js +1 -0
  32. package/.c9/metadata/workspace/test/object.js +1 -0
  33. package/.c9/metadata/workspace/test/ref.js +1 -0
  34. package/.c9/metadata/workspace/test/string.js +1 -0
  35. package/.c9/project.settings +34 -0
  36. package/.travis.yml +1 -0
  37. package/Makefile +3 -3
  38. package/README.md +162 -31
  39. package/examples/conditionalRequire.js +43 -0
  40. package/examples/customMessage.js +22 -0
  41. package/examples/multipleWhen.js +17 -0
  42. package/lib/any.js +35 -24
  43. package/lib/array.js +25 -0
  44. package/lib/date.js +64 -9
  45. package/lib/errors.js +18 -2
  46. package/lib/index.js +3 -2
  47. package/lib/language.js +17 -6
  48. package/lib/number.js +50 -0
  49. package/lib/object.js +69 -5
  50. package/lib/string.js +27 -6
  51. package/package.json +5 -3
  52. package/test/alternatives.js +12 -10
  53. package/test/any.js +64 -15
  54. package/test/array.js +55 -16
  55. package/test/binary.js +13 -11
  56. package/test/boolean.js +9 -7
  57. package/test/date.js +143 -20
  58. package/test/errors.js +26 -15
  59. package/test/function.js +7 -5
  60. package/test/helper.js +7 -5
  61. package/test/index.js +116 -73
  62. package/test/number.js +125 -12
  63. package/test/object.js +192 -43
  64. package/test/ref.js +22 -20
  65. package/test/string.js +255 -106
  66. package/AUTHORS +0 -3
package/test/errors.js CHANGED
@@ -1,6 +1,7 @@
1
1
  // Load modules
2
2
 
3
3
  var Lab = require('lab');
4
+ var Code = require('code');
4
5
  var Joi = require('../lib');
5
6
 
6
7
 
@@ -11,11 +12,12 @@ var internals = {};
11
12
 
12
13
  // Test shortcuts
13
14
 
14
- var expect = Lab.expect;
15
- var before = Lab.before;
16
- var after = Lab.after;
17
- var describe = Lab.experiment;
18
- var it = Lab.test;
15
+ var lab = exports.lab = Lab.script();
16
+ var before = lab.before;
17
+ var after = lab.after;
18
+ var describe = lab.describe;
19
+ var it = lab.it;
20
+ var expect = Code.expect;
19
21
 
20
22
 
21
23
  describe('errors', function () {
@@ -70,7 +72,7 @@ describe('errors', function () {
70
72
 
71
73
  Joi.validate(input, schema, { abortEarly: false, language: lang }, function (err, value) {
72
74
 
73
- expect(err).to.exist;
75
+ expect(err).to.exist();
74
76
  expect(err.name).to.equal('ValidationError');
75
77
  expect(err.message).to.equal('value 11. required 7. xor 7. email 19. date 18. alphanum 16. min 14. max 15. notEmpty 3');
76
78
  done();
@@ -120,7 +122,7 @@ describe('errors', function () {
120
122
 
121
123
  Joi.validate(input, schema, { abortEarly: false }, function (err, value) {
122
124
 
123
- expect(err).to.exist;
125
+ expect(err).to.exist();
124
126
  expect(err.details).to.have.length(3);
125
127
  expect(err.details[0].type).to.equal('number.base');
126
128
  expect(err.details[1].type).to.equal('string.base');
@@ -139,8 +141,8 @@ describe('errors', function () {
139
141
 
140
142
  schema.validate(input, function (err, value) {
141
143
 
142
- expect(err).to.exist;
143
- expect(err.details[0].path).to.equal('1');
144
+ expect(err).to.exist();
145
+ expect(err.details[0].path).to.equal('1.1.x');
144
146
  done();
145
147
  });
146
148
  });
@@ -155,8 +157,8 @@ describe('errors', function () {
155
157
 
156
158
  schema.validate(input, function (err, value) {
157
159
 
158
- expect(err).to.exist;
159
- expect(err.details[0].path).to.equal('1');
160
+ expect(err).to.exist();
161
+ expect(err.details[0].path).to.equal('1.1');
160
162
  done();
161
163
  });
162
164
  });
@@ -173,8 +175,8 @@ describe('errors', function () {
173
175
 
174
176
  Joi.validate(input, schema, function (err, value) {
175
177
 
176
- expect(err).to.exist;
177
- expect(err.details[0].path).to.equal('x.1');
178
+ expect(err).to.exist();
179
+ expect(err.details[0].path).to.equal('x.1.x');
178
180
  done();
179
181
  });
180
182
  });
@@ -188,6 +190,15 @@ describe('errors', function () {
188
190
  });
189
191
  });
190
192
 
193
+ it('overrides label key language', function (done) {
194
+
195
+ Joi.string().options({ language: { root: 'blah', label: 'bleh' } }).validate(4, function (err, value) {
196
+
197
+ expect(err.message).to.equal('bleh must be a string');
198
+ done();
199
+ });
200
+ });
201
+
191
202
  describe('#annotate', function () {
192
203
 
193
204
  it('annotates error', function (done) {
@@ -215,7 +226,7 @@ describe('errors', function () {
215
226
 
216
227
  Joi.validate(object, schema, { abortEarly: false }, function (err, value) {
217
228
 
218
- expect(err).to.exist;
229
+ expect(err).to.exist();
219
230
  expect(err.annotate()).to.equal('{\n \"y\": {\n \"b\" \u001b[31m[1]\u001b[0m: {\n \"c\": 10\n },\n \u001b[41m\"u\"\u001b[0m\u001b[31m [2]: -- missing --\u001b[0m\n },\n \"a\" \u001b[31m[3]\u001b[0m: \"m\"\n}\n\u001b[31m\n[1] a must be one of a, b, c, d\n[2] u is required\n[3] b must be a string\u001b[0m');
220
231
  done();
221
232
  });
@@ -233,7 +244,7 @@ describe('errors', function () {
233
244
 
234
245
  Joi.validate({ x: true }, schema, function (err, value) {
235
246
 
236
- expect(err).to.exist;
247
+ expect(err).to.exist();
237
248
  expect(err.annotate()).to.equal('{\n \"x\" \u001b[31m[1, 2, 3]\u001b[0m: true\n}\n\u001b[31m\n[1] x must be a string\n[2] x must be a number\n[3] x must be a number of milliseconds or valid date string\u001b[0m');
238
249
  done();
239
250
  });
package/test/function.js CHANGED
@@ -1,6 +1,7 @@
1
1
  // Load modules
2
2
 
3
3
  var Lab = require('lab');
4
+ var Code = require('code');
4
5
  var Joi = require('../lib');
5
6
  var Helper = require('./helper');
6
7
 
@@ -12,11 +13,12 @@ var internals = {};
12
13
 
13
14
  // Test shortcuts
14
15
 
15
- var expect = Lab.expect;
16
- var before = Lab.before;
17
- var after = Lab.after;
18
- var describe = Lab.experiment;
19
- var it = Lab.test;
16
+ var lab = exports.lab = Lab.script();
17
+ var before = lab.before;
18
+ var after = lab.after;
19
+ var describe = lab.describe;
20
+ var it = lab.it;
21
+ var expect = Code.expect;
20
22
 
21
23
 
22
24
  describe('func', function () {
package/test/helper.js CHANGED
@@ -1,6 +1,7 @@
1
1
  // Load modules
2
2
 
3
3
  var Lab = require('lab');
4
+ var Code = require('code');
4
5
  var Joi = require('../');
5
6
 
6
7
 
@@ -11,11 +12,12 @@ var internals = {};
11
12
 
12
13
  // Test shortcuts
13
14
 
14
- var expect = Lab.expect;
15
- var before = Lab.before;
16
- var after = Lab.after;
17
- var describe = Lab.experiment;
18
- var it = Lab.test;
15
+ var lab = exports.lab = Lab.script();
16
+ var before = lab.before;
17
+ var after = lab.after;
18
+ var describe = lab.describe;
19
+ var it = lab.it;
20
+ var expect = Code.expect;
19
21
 
20
22
 
21
23
  exports.validate = function (schema, config, callback) {