diff --git a/spec/ParseAPI.spec.js b/spec/ParseAPI.spec.js index a1bb412f54..084b7fe337 100644 --- a/spec/ParseAPI.spec.js +++ b/spec/ParseAPI.spec.js @@ -1119,6 +1119,22 @@ describe('miscellaneous', function() { }); }); + it('can handle null params in cloud functions (regression test for #1742)', done => { + Parse.Cloud.define('func', (request, response) => { + expect(request.params.nullParam).toEqual(null); + response.success('yay'); + }); + + Parse.Cloud.run('func', {nullParam: null}) + .then(() => { + Parse.Cloud._removeHook('Functions', 'func'); + done() + }, e => { + fail('cloud code call failed'); + done(); + }); + }); + it('fails on invalid client key', done => { var headers = { 'Content-Type': 'application/octet-stream', diff --git a/src/Routers/FunctionsRouter.js b/src/Routers/FunctionsRouter.js index 3b2c740a24..ea614b4946 100644 --- a/src/Routers/FunctionsRouter.js +++ b/src/Routers/FunctionsRouter.js @@ -36,7 +36,7 @@ export class FunctionsRouter extends PromiseRouter { for (var key in params) { if (params.hasOwnProperty(key)) { var value = params[key]; - if (value.__type == 'Date') { + if (value && value.__type == 'Date') { params[key] = new Date(value.iso); } }