Files
kami-parse-server/spec/ParseServer.spec.js

64 lines
1.9 KiB
JavaScript

'use strict';
/* Tests for ParseServer.js */
const express = require('express');
const ParseServer = require('../lib/ParseServer').default;
const path = require('path');
const { spawn } = require('child_process');
describe('Server Url Checks', () => {
let server;
beforeEach(done => {
if (!server) {
const app = express();
app.get('/health', function (req, res) {
res.json({
status: 'ok',
});
});
server = app.listen(13376, undefined, done);
} else {
done();
}
});
afterAll(done => {
Parse.serverURL = 'http://localhost:8378/1';
server.close(done);
});
it('validate good server url', async () => {
Parse.serverURL = 'http://localhost:13376';
const response = await ParseServer.verifyServerUrl();
expect(response).toBeTrue();
});
it('mark bad server url', async () => {
spyOn(console, 'warn').and.callFake(() => {});
Parse.serverURL = 'notavalidurl';
const response = await ParseServer.verifyServerUrl();
expect(response).not.toBeTrue();
expect(console.warn).toHaveBeenCalledWith(
`\nWARNING, Unable to connect to 'notavalidurl' as the URL is invalid. Cloud code and push notifications may be unavailable!\n`
);
});
it('does not have unhandled promise rejection in the case of load error', done => {
const parseServerProcess = spawn(path.resolve(__dirname, './support/FailingServer.js'));
let stdout;
let stderr;
parseServerProcess.stdout.on('data', data => {
stdout = data.toString();
});
parseServerProcess.stderr.on('data', data => {
stderr = data.toString();
});
parseServerProcess.on('close', async code => {
expect(code).toEqual(1);
expect(stdout).not.toContain('UnhandledPromiseRejectionWarning');
expect(stderr).toContain('Database error');
await reconfigureServer();
done();
});
});
});