Merge branch 'master' of github.com:codegefluester/parse-server
This commit is contained in:
@@ -78,3 +78,9 @@ Parse.Cloud.define('foo', function(req, res) {
|
|||||||
Parse.Cloud.define('bar', function(req, res) {
|
Parse.Cloud.define('bar', function(req, res) {
|
||||||
res.error('baz');
|
res.error('baz');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Parse.Cloud.define('requiredParameterCheck', function(req, res) {
|
||||||
|
res.success();
|
||||||
|
}, function(params) {
|
||||||
|
return params.name;
|
||||||
|
});
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ function handleCloudFunction(req) {
|
|||||||
if (Parse.Cloud.Functions[req.params.functionName]) {
|
if (Parse.Cloud.Functions[req.params.functionName]) {
|
||||||
// Run the validator for this function first
|
// Run the validator for this function first
|
||||||
if (Parse.Cloud.Validators[req.params.functionName]) {
|
if (Parse.Cloud.Validators[req.params.functionName]) {
|
||||||
var result = Parse.Cloud.Validators[req.params.functionName](req.body);
|
var result = Parse.Cloud.Validators[req.params.functionName](req.body || {});
|
||||||
if (!result) {
|
if (!result) {
|
||||||
throw new Parse.Error(Parse.Error.SCRIPT_FAILED, 'Validation failed.');
|
throw new Parse.Error(Parse.Error.SCRIPT_FAILED, 'Validation failed.');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -544,6 +544,42 @@ describe('miscellaneous', function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('test cloud function parameter validation success', (done) => {
|
||||||
|
// Register a function with validation
|
||||||
|
Parse.Cloud.define('functionWithParameterValidation', (req, res) => {
|
||||||
|
res.success('works');
|
||||||
|
}, (params) => {
|
||||||
|
return params.success === 100;
|
||||||
|
});
|
||||||
|
|
||||||
|
Parse.Cloud.run('functionWithParameterValidation', {"success":100}).then((s) => {
|
||||||
|
delete Parse.Cloud.Functions['functionWithParameterValidation'];
|
||||||
|
done();
|
||||||
|
}, (e) => {
|
||||||
|
fail('Validation should not have failed.');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('test cloud function parameter validation', (done) => {
|
||||||
|
// Register a function with validation
|
||||||
|
Parse.Cloud.define('functionWithParameterValidationFailure', (req, res) => {
|
||||||
|
res.success('noway');
|
||||||
|
}, (params) => {
|
||||||
|
return params.success === 100;
|
||||||
|
});
|
||||||
|
|
||||||
|
Parse.Cloud.run('functionWithParameterValidationFailure', {"success":500}).then((s) => {
|
||||||
|
fail('Validation should not have succeeded');
|
||||||
|
delete Parse.Cloud.Functions['functionWithParameterValidationFailure'];
|
||||||
|
done();
|
||||||
|
}, (e) => {
|
||||||
|
expect(e.code).toEqual(141);
|
||||||
|
expect(e.message).toEqual('Validation failed.');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('fails on invalid client key', done => {
|
it('fails on invalid client key', done => {
|
||||||
var headers = {
|
var headers = {
|
||||||
'Content-Type': 'application/octet-stream',
|
'Content-Type': 'application/octet-stream',
|
||||||
|
|||||||
Reference in New Issue
Block a user