Skip to content
8 changes: 5 additions & 3 deletions integration/test/ParseEventuallyQueueTest.js
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ describe('Parse EventuallyQueue', () => {
it('can saveEventually', async () => {
const parseServer = await reconfigureServer();
const object = new TestObject({ hash: 'saveSecret' });
await parseServer.handleShutdown();
await new Promise(resolve => parseServer.server.close(resolve));
await object.saveEventually();

Expand Down Expand Up @@ -224,15 +225,15 @@ describe('Parse EventuallyQueue', () => {
const acl = new Parse.ACL(user);
const object = new TestObject({ hash: 'saveSecret' });
object.setACL(acl);

await parseServer.handleShutdown();
await new Promise(resolve => parseServer.server.close(resolve));
await object.saveEventually();

const length = await Parse.EventuallyQueue.length();
assert(Parse.EventuallyQueue.isPolling());
assert.strictEqual(length, 1);

await reconfigureServer({});
await reconfigureServer();

while (Parse.EventuallyQueue.isPolling()) {
await sleep(100);
Expand All @@ -250,14 +251,15 @@ describe('Parse EventuallyQueue', () => {
const parseServer = await reconfigureServer();
const object = new TestObject({ hash: 'deleteSecret' });
await object.save();
await parseServer.handleShutdown();
await new Promise(resolve => parseServer.server.close(resolve));
await object.destroyEventually();
const length = await Parse.EventuallyQueue.length();

assert(Parse.EventuallyQueue.isPolling());
assert.strictEqual(length, 1);

await reconfigureServer({});
await reconfigureServer();
while (Parse.EventuallyQueue.isPolling()) {
await sleep(100);
}
Expand Down
1 change: 1 addition & 0 deletions integration/test/ParseServerTest.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ describe('ParseServer', () => {
it('can reconfigure server', async () => {
const parseServer = await reconfigureServer({ serverURL: 'www.google.com' });
assert.strictEqual(parseServer.config.serverURL, 'www.google.com');
await parseServer.handleShutdown();
await new Promise(resolve => parseServer.server.close(resolve));
await reconfigureServer();
});
Expand Down
13 changes: 7 additions & 6 deletions integration/test/helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -93,14 +93,12 @@ const defaultConfiguration = {

const openConnections = {};
let parseServer;
let server;

const reconfigureServer = async (changedConfiguration = {}) => {
if (server) {
if (parseServer) {
await parseServer.handleShutdown();
await new Promise(resolve => server.close(resolve));
await new Promise(resolve => parseServer.server.close(resolve));
parseServer = undefined;
server = undefined;
return reconfigureServer(changedConfiguration);
}

Expand All @@ -110,6 +108,10 @@ const reconfigureServer = async (changedConfiguration = {}) => {
port,
});
parseServer = await ParseServer.startApp(newConfiguration);
if (parseServer.config.state === 'initialized') {
console.error('Failed to initialize Parse Server');
return reconfigureServer(newConfiguration);
}
const app = parseServer.expressApp;
for (const fileName of ['parse.js', 'parse.min.js']) {
const file = fs.readFileSync(path.resolve(__dirname, `./../../dist/${fileName}`)).toString();
Expand All @@ -136,8 +138,7 @@ const reconfigureServer = async (changedConfiguration = {}) => {
res.send('{}');
});
});
server = parseServer.server;
server.on('connection', connection => {
parseServer.server.on('connection', connection => {
const key = `${connection.remoteAddress}:${connection.remotePort}`;
openConnections[key] = connection;
connection.on('close', () => {
Expand Down