diff --git a/packages/strapi/lib/services/__tests__/entity-validator.test.js b/packages/strapi/lib/services/__tests__/entity-validator.test.js index a4d85b7289..231cd238d2 100644 --- a/packages/strapi/lib/services/__tests__/entity-validator.test.js +++ b/packages/strapi/lib/services/__tests__/entity-validator.test.js @@ -23,7 +23,7 @@ describe('Entity validator', () => { }, }; - const input = { title: 123 }; + const input = { title: 1234 }; expect.hasAssertions(); @@ -59,6 +59,39 @@ describe('Entity validator', () => { expect(data).toEqual(input); }); + it('Returns casted data when possible', async () => { + const errors = { + badRequest: jest.fn(), + }; + + const entityValidator = createEntityValidator({ + strapi: { + errors, + }, + }); + + const model = { + attributes: { + title: { + type: 'string', + }, + number: { + type: 'integer', + }, + }, + }; + + const input = { title: 'Test', number: '123' }; + + expect.hasAssertions(); + + const data = await entityValidator.validateEntity(model, input); + expect(data).toEqual({ + title: 'Test', + number: 123, + }); + }); + test('Throws on required not respected', async () => { const errors = { badRequest: jest.fn(), diff --git a/packages/strapi/lib/services/entity-validator/validators.js b/packages/strapi/lib/services/entity-validator/validators.js index 98ff4ca32b..56b8abf4b3 100644 --- a/packages/strapi/lib/services/entity-validator/validators.js +++ b/packages/strapi/lib/services/entity-validator/validators.js @@ -66,7 +66,7 @@ const addMaxFloatValidator = ({ max }, validator) => /* Type validators */ const stringValidator = composeValidators( - () => yup.string(), + () => yup.string().strict(), addMinLengthValidator, addMaxLengthValidator );