const ParseServer = require('../lib/index'); const express = require('express'); const rp = require('request-promise'); describe('Enable express error handler', () => { it('should call the default handler in case of error, like updating a non existing object', done => { const serverUrl = 'http://localhost:12667/parse'; const appId = 'anOtherTestApp'; const masterKey = 'anOtherTestMasterKey'; let server; let lastError; const parseServer = ParseServer.ParseServer( Object.assign({}, defaultConfiguration, { appId: appId, masterKey: masterKey, serverURL: serverUrl, enableExpressErrorHandler: true, __indexBuildCompletionCallbackForTests: promise => { promise.then(() => { expect(Parse.applicationId).toEqual('anOtherTestApp'); const app = express(); app.use('/parse', parseServer); server = app.listen(12667); app.use(function(err, req, res, next) { next; lastError = err; }); rp({ method: 'PUT', uri: serverUrl + '/classes/AnyClass/nonExistingId', headers: { 'X-Parse-Application-Id': appId, 'X-Parse-Master-Key': masterKey, }, body: { someField: 'blablabla' }, json: true, }) .then(() => { fail('Should throw error'); }) .catch(e => { expect(e).toBeDefined(); const reqError = e.error; expect(reqError).toBeDefined(); expect(lastError).toBeDefined(); expect(lastError.code).toEqual(101); expect(lastError.message).toEqual('Object not found.'); expect(lastError.code).toEqual(reqError.code); expect(lastError.message).toEqual(reqError.error); }) .then(() => { server.close(done); }); }); }, }) ); }); });