Skip to content

Commit 2a26725

Browse files
authored
Upgrade some dependencies (#230)
1 parent de710ca commit 2a26725

File tree

4 files changed

+88
-81
lines changed

4 files changed

+88
-81
lines changed

lib/celebrate.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -143,9 +143,8 @@ exports.celebrate = (_requestRules, joiOpts = {}, opts = {}) => {
143143

144144
// Compile all schemas in advance and only do it once
145145
const requestRules = new Map();
146-
Object.entries(_requestRules).reduce(
147-
(memo, [key, value]) => memo.set(key, Joi.compile(value)), requestRules,
148-
);
146+
Object.entries(_requestRules)
147+
.reduce((memo, [key, value]) => memo.set(key, Joi.compile(value)), requestRules);
149148

150149
const middleware = (req, res, next) => {
151150
const joiConfig = finalOpts.reqContext ? {

package.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -34,22 +34,22 @@
3434
"lodash": "4.17.x"
3535
},
3636
"devDependencies": {
37-
"@hapi/teamwork": "3.3.x",
37+
"@hapi/teamwork": "5.1.0",
3838
"@types/express": "4.x.x",
3939
"artificial": "1.x.x",
4040
"benchmark": "2.1.x",
4141
"body-parser": "1.19.x",
4242
"cookie-parser": "1.4.x",
4343
"cookie-signature": "1.1.x",
44-
"eslint": "6.x.x",
45-
"eslint-config-airbnb-base": "14.x.x",
44+
"eslint": "8.x.x",
45+
"eslint-config-airbnb-base": "15.x.x",
4646
"eslint-plugin-import": "2.x.x",
47-
"expect": "25.x.x",
47+
"expect": "27.x.x",
4848
"express": "next",
49-
"faker": "4.1.x",
49+
"faker": "5.5.x",
5050
"is-ci-cli": "2.x.x",
51-
"jest": "25.x.x",
52-
"jest-runner-eslint": "0.7.x",
51+
"jest": "27.x.x",
52+
"jest-runner-eslint": "1.x.x",
5353
"markdown-toc": "1.2.x"
5454
}
5555
}

test/celebrate.test.js

+41-37
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
/* eslint-env jest */
22
const expect = require('expect');
33
const {
4-
name, random, date, internet,
4+
name,
5+
random,
6+
date,
7+
internet,
8+
datatype,
59
} = require('faker');
610
const {
711
celebrate,
@@ -22,40 +26,40 @@ describe('celebrate()', () => {
2226
${{}}
2327
${{ [Segments.QUERY]: { name: Joi.string(), age: Joi.number() }, foo: Joi.string() }}
2428
`('celebrate($schema)', ({ schema }) => {
25-
it('throws an error', () => {
26-
expect(() => {
27-
celebrate(schema);
28-
}).toThrow(Joi.ValidationError);
29+
it('throws an error', () => {
30+
expect(() => {
31+
celebrate(schema);
32+
}).toThrow(Joi.ValidationError);
33+
});
2934
});
30-
});
3135

3236
describe.each`
3337
segment | schema | req | message
3438
${Segments.HEADERS} | ${{ [Segments.HEADERS]: { accept: Joi.string().regex(/xml/) } }} | ${{ [Segments.HEADERS]: { accept: 'application/json' } }} | ${'"accept" with value "application/json" fails to match the required pattern: /xml/'}
3539
${Segments.PARAMS} | ${{ [Segments.PARAMS]: { id: Joi.string().token() } }} | ${{ [Segments.PARAMS]: { id: '@@@' } }} | ${'"id" must only contain alpha-numeric and underscore characters'}
36-
${Segments.QUERY} | ${{ [Segments.QUERY]: Joi.object().keys({ start: Joi.date() }) }} | ${{ [Segments.QUERY]: { end: random.number() } }} | ${'"end" is not allowed'}
37-
${Segments.BODY} | ${{ [Segments.BODY]: { first: Joi.string().required(), last: Joi.string(), role: Joi.number().integer() } }} | ${{ [Segments.BODY]: { first: name.firstName(), last: random.number() }, method: 'POST' }} | ${'"last" must be a string'}
38-
${Segments.COOKIES} | ${{ [Segments.COOKIES]: { state: Joi.string().required() } }} | ${{ [Segments.COOKIES]: { state: random.number() } }} | ${'"state" must be a string'}
39-
${Segments.SIGNEDCOOKIES} | ${{ [Segments.SIGNEDCOOKIES]: { uid: Joi.string().required() } }} | ${{ [Segments.SIGNEDCOOKIES]: { uid: random.number() } }} | ${'"uid" must be a string'}
40+
${Segments.QUERY} | ${{ [Segments.QUERY]: Joi.object().keys({ start: Joi.date() }) }} | ${{ [Segments.QUERY]: { end: datatype.number() } }} | ${'"end" is not allowed'}
41+
${Segments.BODY} | ${{ [Segments.BODY]: { first: Joi.string().required(), last: Joi.string(), role: Joi.number().integer() } }} | ${{ [Segments.BODY]: { first: name.firstName(), last: datatype.number() }, method: 'POST' }} | ${'"last" must be a string'}
42+
${Segments.COOKIES} | ${{ [Segments.COOKIES]: { state: Joi.string().required() } }} | ${{ [Segments.COOKIES]: { state: datatype.number() } }} | ${'"state" must be a string'}
43+
${Segments.SIGNEDCOOKIES} | ${{ [Segments.SIGNEDCOOKIES]: { uid: Joi.string().required() } }} | ${{ [Segments.SIGNEDCOOKIES]: { uid: datatype.number() } }} | ${'"uid" must be a string'}
4044
`('celebate middleware', ({
41-
schema, req, message, segment,
42-
}) => {
43-
describe.each`
45+
schema, req, message, segment,
46+
}) => {
47+
describe.each`
4448
fn | kind
4549
${celebrate} | ${'celebrate'}
4650
${celebrator(undefined, undefined)} | ${'celebrator'}
4751
`('', ({ fn, kind }) => {
48-
it(`validates ${segment} correctly with ${kind}`, () => {
49-
expect.assertions(2);
50-
const middleware = fn(schema);
51-
52-
return middleware(req, null, (err) => {
53-
expect(isCelebrateError(err)).toBe(true);
54-
expect(err.details.get(segment).message).toBe(message);
52+
it(`validates ${segment} correctly with ${kind}`, () => {
53+
expect.assertions(2);
54+
const middleware = fn(schema);
55+
56+
return middleware(req, null, (err) => {
57+
expect(isCelebrateError(err)).toBe(true);
58+
expect(err.details.get(segment).message).toBe(message);
59+
});
60+
});
5561
});
5662
});
57-
});
58-
});
5963

6064
it('errors on the first validation problem (params, query, body) by default', () => {
6165
expect.assertions(2);
@@ -78,7 +82,7 @@ describe('celebrate()', () => {
7882
id: random.alphaNumeric(10),
7983
},
8084
[Segments.QUERY]: {
81-
end: random.boolean(),
85+
end: datatype.boolean(),
8286
},
8387
[Segments.BODY]: {
8488
first: name.firstName(),
@@ -110,15 +114,15 @@ describe('celebrate()', () => {
110114

111115
return middleware({
112116
[Segments.PARAMS]: {
113-
id: random.number(),
117+
id: datatype.number(),
114118
},
115119
[Segments.QUERY]: {
116-
end: random.boolean(),
120+
end: datatype.boolean(),
117121
},
118122
[Segments.BODY]: {
119123
first: name.firstName(),
120124
last: name.lastName(),
121-
role: random.boolean(),
125+
role: datatype.boolean(),
122126
},
123127
method: 'POST',
124128
}, null, (err) => {
@@ -259,7 +263,7 @@ describe('celebrate()', () => {
259263
return middleware({
260264
[Segments.BODY]: {
261265
first: name.firstName(),
262-
role: random.number(),
266+
role: datatype.number(),
263267
},
264268
method: 'POST',
265269
}, null, (err) => {
@@ -322,7 +326,7 @@ describe('celebrate()', () => {
322326
return middleware({
323327
method: 'POST',
324328
[Segments.BODY]: {
325-
id: random.number({ min: 1, max: 99 }),
329+
id: datatype.number({ min: 1, max: 99 }),
326330
},
327331
}, null, (err) => {
328332
expect(isCelebrateError(err)).toBe(true);
@@ -349,7 +353,7 @@ describe('celebrate()', () => {
349353
userId: 10,
350354
},
351355
[Segments.BODY]: {
352-
id: random.number({ min: 1, max: 9 }),
356+
id: datatype.number({ min: 1, max: 9 }),
353357
},
354358
}, null, (err) => {
355359
expect(isCelebrateError(err)).toBe(true);
@@ -382,7 +386,7 @@ describe('errors()', () => {
382386

383387
return middleware({
384388
[Segments.QUERY]: {
385-
role: random.number({ min: 0, max: 3 }),
389+
role: datatype.number({ min: 0, max: 3 }),
386390
},
387391
method: 'GET',
388392
}, null, (err) => {
@@ -437,7 +441,7 @@ describe('errors()', () => {
437441

438442
return middleware({
439443
[Segments.QUERY]: {
440-
role: random.number({ min: 0, max: 3 }),
444+
role: datatype.number({ min: 0, max: 3 }),
441445
},
442446
method: 'GET',
443447
}, null, (err) => {
@@ -472,7 +476,7 @@ describe('errors()', () => {
472476

473477
return middleware({
474478
[Segments.QUERY]: {
475-
role: random.number({ min: 0, max: 3 }),
479+
role: datatype.number({ min: 0, max: 3 }),
476480
},
477481
method: 'GET',
478482
}, null, (err) => {
@@ -496,11 +500,11 @@ describe('isCelebrateError()', () => {
496500
${null} | ${false}
497501
${undefined} | ${false}
498502
`('isCelebrateError($value)', ({ value, expected }) => {
499-
it(`returns ${expected}`, () => {
500-
expect.assertions(1);
501-
expect(isCelebrateError(value)).toBe(expected);
503+
it(`returns ${expected}`, () => {
504+
expect.assertions(1);
505+
expect(isCelebrateError(value)).toBe(expected);
506+
});
502507
});
503-
});
504508

505509
it('returns true if the error object came from celebrate', () => {
506510
expect.assertions(1);
@@ -512,7 +516,7 @@ describe('isCelebrateError()', () => {
512516

513517
return middleware({
514518
[Segments.HEADERS]: {
515-
accept: random.number(),
519+
accept: datatype.number(),
516520
},
517521
}, null, (err) => {
518522
expect(isCelebrateError(err)).toBe(true);

0 commit comments

Comments
 (0)