Fix for #1334: using relative cloud code files broken

* Adding tests for absolute and relative cloud code file loading.

* Fixes #1334 by resolving relative cloud code file paths to the process' working directory.
This commit is contained in:
Tommy Goode
2016-04-04 07:43:06 -05:00
committed by Florent Vilmart
parent f99b5588ab
commit acc23d0828
3 changed files with 23 additions and 2 deletions

View File

@@ -10,7 +10,7 @@ var ParseServer = require('../src/index').ParseServer;
var path = require('path');
var databaseURI = process.env.DATABASE_URI;
var cloudMain = process.env.CLOUD_CODE_MAIN || '../spec/cloud/main.js';
var cloudMain = process.env.CLOUD_CODE_MAIN || './spec/cloud/main.js';
var port = 8378;
// Default server configuration for tests.

View File

@@ -175,6 +175,26 @@ describe('server', () => {
})
});
it('can load absolute cloud code file', done => {
setServerConfiguration({
serverURL: 'http://localhost:8378/1',
appId: 'test',
masterKey: 'test',
cloud: __dirname + '/cloud/main.js'
});
done();
});
it('can load relative cloud code file', done => {
setServerConfiguration({
serverURL: 'http://localhost:8378/1',
appId: 'test',
masterKey: 'test',
cloud: './spec/cloud/main.js'
});
done();
});
it('can create a parse-server', done => {
var parseServer = new ParseServer.default({
appId: "aTestApp",

View File

@@ -9,6 +9,7 @@ var batch = require('./batch'),
middlewares = require('./middlewares'),
multer = require('multer'),
Parse = require('parse/node').Parse,
path = require('path'),
authDataManager = require('./authDataManager');
import { logger,
@@ -142,7 +143,7 @@ class ParseServer {
if (typeof cloud === 'function') {
cloud(Parse)
} else if (typeof cloud === 'string') {
require(cloud);
require(path.resolve(process.cwd(), cloud));
} else {
throw "argument 'cloud' must either be a string or a function";
}