Skip to content

Commit b8752c8

Browse files
Merge branch 'master' of github.com:codegefluester/parse-server
2 parents 4e3b558 + e73dcf4 commit b8752c8

File tree

3 files changed

+43
-1
lines changed

3 files changed

+43
-1
lines changed

cloud/main.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,3 +78,9 @@ Parse.Cloud.define('foo', function(req, res) {
7878
Parse.Cloud.define('bar', function(req, res) {
7979
res.error('baz');
8080
});
81+
82+
Parse.Cloud.define('requiredParameterCheck', function(req, res) {
83+
res.success();
84+
}, function(params) {
85+
return params.name;
86+
});

functions.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ function handleCloudFunction(req) {
1212
if (Parse.Cloud.Functions[req.params.functionName]) {
1313
// Run the validator for this function first
1414
if (Parse.Cloud.Validators[req.params.functionName]) {
15-
var result = Parse.Cloud.Validators[req.params.functionName](req.body);
15+
var result = Parse.Cloud.Validators[req.params.functionName](req.body || {});
1616
if (!result) {
1717
throw new Parse.Error(Parse.Error.SCRIPT_FAILED, 'Validation failed.');
1818
}

spec/ParseAPI.spec.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,42 @@ describe('miscellaneous', function() {
544544
});
545545
});
546546

547+
it('test cloud function parameter validation success', (done) => {
548+
// Register a function with validation
549+
Parse.Cloud.define('functionWithParameterValidation', (req, res) => {
550+
res.success('works');
551+
}, (params) => {
552+
return params.success === 100;
553+
});
554+
555+
Parse.Cloud.run('functionWithParameterValidation', {"success":100}).then((s) => {
556+
delete Parse.Cloud.Functions['functionWithParameterValidation'];
557+
done();
558+
}, (e) => {
559+
fail('Validation should not have failed.');
560+
done();
561+
});
562+
});
563+
564+
it('test cloud function parameter validation', (done) => {
565+
// Register a function with validation
566+
Parse.Cloud.define('functionWithParameterValidationFailure', (req, res) => {
567+
res.success('noway');
568+
}, (params) => {
569+
return params.success === 100;
570+
});
571+
572+
Parse.Cloud.run('functionWithParameterValidationFailure', {"success":500}).then((s) => {
573+
fail('Validation should not have succeeded');
574+
delete Parse.Cloud.Functions['functionWithParameterValidationFailure'];
575+
done();
576+
}, (e) => {
577+
expect(e.code).toEqual(141);
578+
expect(e.message).toEqual('Validation failed.');
579+
done();
580+
});
581+
});
582+
547583
it('fails on invalid client key', done => {
548584
var headers = {
549585
'Content-Type': 'application/octet-stream',

0 commit comments

Comments
 (0)