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.
- package/.c9/.nakignore +17 -0
- package/.c9/metadata/tab0 +1 -0
- package/.c9/metadata/workspace/.c9/project.settings +1 -0
- package/.c9/metadata/workspace/.travis.yml +1 -0
- package/.c9/metadata/workspace/Makefile +1 -0
- package/.c9/metadata/workspace/README.md +1 -0
- package/.c9/metadata/workspace/lib/any.js +1 -0
- package/.c9/metadata/workspace/lib/array.js +1 -0
- package/.c9/metadata/workspace/lib/binary.js +1 -0
- package/.c9/metadata/workspace/lib/boolean.js +1 -0
- package/.c9/metadata/workspace/lib/cast.js +1 -0
- package/.c9/metadata/workspace/lib/date.js +1 -0
- package/.c9/metadata/workspace/lib/errors.js +1 -0
- package/.c9/metadata/workspace/lib/function.js +1 -0
- package/.c9/metadata/workspace/lib/index.js +1 -0
- package/.c9/metadata/workspace/lib/language.js +1 -0
- package/.c9/metadata/workspace/lib/number.js +1 -0
- package/.c9/metadata/workspace/lib/object.js +1 -0
- package/.c9/metadata/workspace/lib/string.js +1 -0
- package/.c9/metadata/workspace/package.json +1 -0
- package/.c9/metadata/workspace/test/alternatives.js +1 -0
- package/.c9/metadata/workspace/test/any.js +1 -0
- package/.c9/metadata/workspace/test/array.js +1 -0
- package/.c9/metadata/workspace/test/binary.js +1 -0
- package/.c9/metadata/workspace/test/boolean.js +1 -0
- package/.c9/metadata/workspace/test/date.js +1 -0
- package/.c9/metadata/workspace/test/errors.js +1 -0
- package/.c9/metadata/workspace/test/function.js +1 -0
- package/.c9/metadata/workspace/test/helper.js +1 -0
- package/.c9/metadata/workspace/test/index.js +1 -0
- package/.c9/metadata/workspace/test/number.js +1 -0
- package/.c9/metadata/workspace/test/object.js +1 -0
- package/.c9/metadata/workspace/test/ref.js +1 -0
- package/.c9/metadata/workspace/test/string.js +1 -0
- package/.c9/project.settings +34 -0
- package/.travis.yml +1 -0
- package/Makefile +3 -3
- package/README.md +162 -31
- package/examples/conditionalRequire.js +43 -0
- package/examples/customMessage.js +22 -0
- package/examples/multipleWhen.js +17 -0
- package/lib/any.js +35 -24
- package/lib/array.js +25 -0
- package/lib/date.js +64 -9
- package/lib/errors.js +18 -2
- package/lib/index.js +3 -2
- package/lib/language.js +17 -6
- package/lib/number.js +50 -0
- package/lib/object.js +69 -5
- package/lib/string.js +27 -6
- package/package.json +5 -3
- package/test/alternatives.js +12 -10
- package/test/any.js +64 -15
- package/test/array.js +55 -16
- package/test/binary.js +13 -11
- package/test/boolean.js +9 -7
- package/test/date.js +143 -20
- package/test/errors.js +26 -15
- package/test/function.js +7 -5
- package/test/helper.js +7 -5
- package/test/index.js +116 -73
- package/test/number.js +125 -12
- package/test/object.js +192 -43
- package/test/ref.js +22 -20
- package/test/string.js +255 -106
- 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
|
|
15
|
-
var before =
|
|
16
|
-
var after =
|
|
17
|
-
var describe =
|
|
18
|
-
var it =
|
|
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
|
|
16
|
-
var before =
|
|
17
|
-
var after =
|
|
18
|
-
var describe =
|
|
19
|
-
var it =
|
|
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
|
|
15
|
-
var before =
|
|
16
|
-
var after =
|
|
17
|
-
var describe =
|
|
18
|
-
var it =
|
|
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) {
|