Skip to content

Node modernization on CI #3787

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
May 14, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 8 additions & 14 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
language: node_js
dist: trusty
node_js:
- '4.6'
- '6.1'
- '6.10'
- '7.10'
services:
- mongodb
- postgresql
- redis-server
- docker
Expand All @@ -27,24 +28,25 @@ env:
global:
- COVERAGE_OPTION='./node_modules/.bin/nyc'
matrix:
- MONGODB_VERSION=3.0.8
- MONGODB_VERSION=3.2.6
- MONGODB_VERSION=3.2.13
- MONGODB_VERSION=3.4.4
- PARSE_SERVER_TEST_DB=postgres
- PARSE_SERVER_TEST_CACHE=redis
before_script:
- node -e 'require("./lib/index.js")'
- psql -c 'create database parse_server_postgres_adapter_test_database;' -U postgres
- psql -c 'CREATE EXTENSION postgis;' -U postgres -d parse_server_postgres_adapter_test_database
- psql -c 'CREATE EXTENSION postgis_topology;' -U postgres -d parse_server_postgres_adapter_test_database
- silent=1 mongodb-runner --start
after_script:
- bash <(curl -s https://codecov.io/bash)

jobs:
include:
# release on github latest branch
- stage: release
node_js: '6.1'
env: RELEASE=github-latest
node_js: '6.10'
env:
before_script: skip
after_script: skip
script: skip
Expand All @@ -54,14 +56,6 @@ jobs:
script: ./resources/npm-git.sh
on:
branch: master
# release on npm
- stage: release
before_script: skip
after_script: skip
script: skip
node_js: '6.1'
env: RELEASE=npm
deploy:
- provider: npm
skip_cleanup: true
email:
Expand Down
5 changes: 3 additions & 2 deletions spec/ParseACL.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
// hungry/js/test/parse_acl_test.js
var rest = require('../src/rest');
var Config = require('../src/Config');
var config = new Config('test');
var auth = require('../src/Auth');

describe('Parse.ACL', () => {
Expand Down Expand Up @@ -1235,6 +1234,7 @@ describe('Parse.ACL', () => {
});

it('regression test #701', done => {
const config = new Config('test');
var anonUser = {
authData: {
anonymous: {
Expand All @@ -1248,6 +1248,7 @@ describe('Parse.ACL', () => {
var user = req.object;
var acl = new Parse.ACL(user);
user.setACL(acl);
console.log('IN AFTER SAVE!');
user.save(null, {useMasterKey: true}).then(user => {
new Parse.Query('_User').get(user.objectId).then(() => {
fail('should not have fetched user without public read enabled');
Expand All @@ -1256,7 +1257,7 @@ describe('Parse.ACL', () => {
expect(error.code).toEqual(Parse.Error.OBJECT_NOT_FOUND);
done();
});
});
}, done.fail);
}
});

Expand Down
68 changes: 32 additions & 36 deletions spec/helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ if (process.env.PARSE_SERVER_TEST_DB === 'postgres') {
startDB = require('mongodb-runner/mocha/before').bind({
timeout: () => {},
slow: () => {}
});
})
stopDB = require('mongodb-runner/mocha/after');
databaseAdapter = new MongoStorageAdapter({
uri: mongoURI,
Expand Down Expand Up @@ -118,44 +118,40 @@ if (process.env.PARSE_SERVER_TEST_CACHE === 'redis') {
const openConnections = {};

// Set up a default API server for testing with default configuration.
var app = express();
var api = new ParseServer(defaultConfiguration);
app.use('/1', api);
app.use('/1', () => {
fail('should not call next');
});
var server = app.listen(port);
server.on('connection', connection => {
const key = `${connection.remoteAddress}:${connection.remotePort}`;
openConnections[key] = connection;
connection.on('close', () => { delete openConnections[key] });
});
var app;
var api;
var server;

// Allows testing specific configurations of Parse Server
const reconfigureServer = changedConfiguration => {
return new Promise((resolve, reject) => {
server.close(() => {
try {
const newConfiguration = Object.assign({}, defaultConfiguration, changedConfiguration, {
__indexBuildCompletionCallbackForTests: indexBuildPromise => indexBuildPromise.then(resolve, reject)
});
cache.clear();
app = express();
api = new ParseServer(newConfiguration);
api.use(require('./testing-routes').router);
app.use('/1', api);
app.use('/1', () => {
fail('should not call next');
});
server = app.listen(port);
server.on('connection', connection => {
const key = `${connection.remoteAddress}:${connection.remotePort}`;
openConnections[key] = connection;
connection.on('close', () => { delete openConnections[key] });
});
} catch(error) {
reject(error);
}
});
if (server) {
return server.close(() => {
server = undefined;
reconfigureServer(changedConfiguration).then(resolve, reject);
});
}
try {
const newConfiguration = Object.assign({}, defaultConfiguration, changedConfiguration, {
__indexBuildCompletionCallbackForTests: indexBuildPromise => indexBuildPromise.then(resolve, reject)
});
cache.clear();
app = express();
api = new ParseServer(newConfiguration);
api.use(require('./testing-routes').router);
app.use('/1', api);
app.use('/1', () => {
fail('should not call next');
});
server = app.listen(port);
server.on('connection', connection => {
const key = `${connection.remoteAddress}:${connection.remotePort}`;
openConnections[key] = connection;
connection.on('close', () => { delete openConnections[key] });
});
} catch(error) {
reject(error);
}
});
}

Expand Down
5 changes: 3 additions & 2 deletions spec/rest.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,14 @@ var Parse = require('parse/node').Parse;
var rest = require('../src/rest');
var request = require('request');

var config = new Config('test');
const database = config.database;
let config;
let database;

describe('rest create', () => {

beforeEach(() => {
config = new Config('test');
database = config.database;
});

it('handles _id', done => {
Expand Down
7 changes: 5 additions & 2 deletions spec/schemas.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ var request = require('request');
var dd = require('deep-diff');
var Config = require('../src/Config');

var config = new Config('test');
var config;

var hasAllPODobject = () => {
var obj = new Parse.Object('HasAllPOD');
Expand Down Expand Up @@ -131,8 +131,11 @@ var masterKeyHeaders = {
};

describe('schemas', () => {

beforeEach(() => {
config = new Config('test');
});

afterEach(() => {
config.database.schemaCache.clear();
});

Expand Down