diff --git a/spec/CloudCode.Validator.spec.js b/spec/CloudCode.Validator.spec.js index d15bc2479d..627497148a 100644 --- a/spec/CloudCode.Validator.spec.js +++ b/spec/CloudCode.Validator.spec.js @@ -264,6 +264,24 @@ describe('cloud validator', () => { }); }); + it('set params type allow array', async () => { + Parse.Cloud.define( + 'hello', + () => { + return 'Hello world!'; + }, + { + fields: { + data: { + type: Array, + }, + }, + } + ); + const result = await Parse.Cloud.run('hello', { data: [{ foo: 'bar' }] }); + expect(result).toBe('Hello world!'); + }); + it('set params type', done => { Parse.Cloud.define( 'hello', diff --git a/src/triggers.js b/src/triggers.js index 47331675b0..fcaee9ee23 100644 --- a/src/triggers.js +++ b/src/triggers.js @@ -710,9 +710,8 @@ function builtInTriggerValidator(options, request) { } if (opt.type) { const type = getType(opt.type); - if (type == 'array' && !Array.isArray(val)) { - throw `Validation failed. Invalid type for ${key}. Expected: array`; - } else if (typeof val !== type) { + const valType = Array.isArray(val) ? 'array' : typeof val; + if (valType !== type) { throw `Validation failed. Invalid type for ${key}. Expected: ${type}`; } }