From 5fdc4e7253a4cd1f57100f7b3c7d1b73f0b44415 Mon Sep 17 00:00:00 2001 From: jorisre Date: Tue, 2 Feb 2021 09:12:03 +0100 Subject: [PATCH] fix: Joi pass context from useForm --- src/joi.test.ts | 16 ++++++++++++++++ src/joi.ts | 3 ++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/joi.test.ts b/src/joi.test.ts index bbd99598..c0ae4c75 100644 --- a/src/joi.test.ts +++ b/src/joi.test.ts @@ -30,4 +30,20 @@ describe('joiResolver', () => { it('should return errors', async () => { expect(await joiResolver(schema)({})).toMatchSnapshot(); }); + + it('should validate with context', async () => { + const schemaSpy = jest.spyOn(schema, 'validateAsync'); + const context = { value: 'context' }; + + const data = { username: 'abc', birthYear: 1994 }; + expect(await joiResolver(schema)(data, context)).toEqual({ + values: data, + errors: {}, + }); + + expect(schemaSpy).toHaveBeenCalledWith(data, { + abortEarly: false, + context, + }); + }); }); diff --git a/src/joi.ts b/src/joi.ts index 8c5c2aeb..1062e610 100644 --- a/src/joi.ts +++ b/src/joi.ts @@ -54,13 +54,14 @@ export const joiResolver = ( }, ): Resolver => async ( values, - _, + context, validateAllFieldCriteria = false, ) => { try { return { values: await schema.validateAsync(values, { ...options, + context, }), errors: {}, };