[CI] test with 6.10 and 7.10, mongoDB 3.2 and 3.4 (#3787)
* Node modernization on CI * Makes sure tests dont yeild unhandled promise rejections * Adds small delay to startDB * Adds mongodb service * testing default * stupid * testing with silent nugget * proper versions * Single release step
This commit is contained in:
22
.travis.yml
22
.travis.yml
@@ -1,9 +1,10 @@
|
|||||||
language: node_js
|
language: node_js
|
||||||
dist: trusty
|
dist: trusty
|
||||||
node_js:
|
node_js:
|
||||||
- '4.6'
|
- '6.10'
|
||||||
- '6.1'
|
- '7.10'
|
||||||
services:
|
services:
|
||||||
|
- mongodb
|
||||||
- postgresql
|
- postgresql
|
||||||
- redis-server
|
- redis-server
|
||||||
- docker
|
- docker
|
||||||
@@ -27,8 +28,8 @@ env:
|
|||||||
global:
|
global:
|
||||||
- COVERAGE_OPTION='./node_modules/.bin/nyc'
|
- COVERAGE_OPTION='./node_modules/.bin/nyc'
|
||||||
matrix:
|
matrix:
|
||||||
- MONGODB_VERSION=3.0.8
|
- MONGODB_VERSION=3.2.13
|
||||||
- MONGODB_VERSION=3.2.6
|
- MONGODB_VERSION=3.4.4
|
||||||
- PARSE_SERVER_TEST_DB=postgres
|
- PARSE_SERVER_TEST_DB=postgres
|
||||||
- PARSE_SERVER_TEST_CACHE=redis
|
- PARSE_SERVER_TEST_CACHE=redis
|
||||||
before_script:
|
before_script:
|
||||||
@@ -36,6 +37,7 @@ before_script:
|
|||||||
- psql -c 'create database parse_server_postgres_adapter_test_database;' -U postgres
|
- 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;' -U postgres -d parse_server_postgres_adapter_test_database
|
||||||
- psql -c 'CREATE EXTENSION postgis_topology;' -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:
|
after_script:
|
||||||
- bash <(curl -s https://codecov.io/bash)
|
- bash <(curl -s https://codecov.io/bash)
|
||||||
|
|
||||||
@@ -43,8 +45,8 @@ jobs:
|
|||||||
include:
|
include:
|
||||||
# release on github latest branch
|
# release on github latest branch
|
||||||
- stage: release
|
- stage: release
|
||||||
node_js: '6.1'
|
node_js: '6.10'
|
||||||
env: RELEASE=github-latest
|
env:
|
||||||
before_script: skip
|
before_script: skip
|
||||||
after_script: skip
|
after_script: skip
|
||||||
script: skip
|
script: skip
|
||||||
@@ -54,14 +56,6 @@ jobs:
|
|||||||
script: ./resources/npm-git.sh
|
script: ./resources/npm-git.sh
|
||||||
on:
|
on:
|
||||||
branch: master
|
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
|
- provider: npm
|
||||||
skip_cleanup: true
|
skip_cleanup: true
|
||||||
email:
|
email:
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
// hungry/js/test/parse_acl_test.js
|
// hungry/js/test/parse_acl_test.js
|
||||||
var rest = require('../src/rest');
|
var rest = require('../src/rest');
|
||||||
var Config = require('../src/Config');
|
var Config = require('../src/Config');
|
||||||
var config = new Config('test');
|
|
||||||
var auth = require('../src/Auth');
|
var auth = require('../src/Auth');
|
||||||
|
|
||||||
describe('Parse.ACL', () => {
|
describe('Parse.ACL', () => {
|
||||||
@@ -1235,6 +1234,7 @@ describe('Parse.ACL', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('regression test #701', done => {
|
it('regression test #701', done => {
|
||||||
|
const config = new Config('test');
|
||||||
var anonUser = {
|
var anonUser = {
|
||||||
authData: {
|
authData: {
|
||||||
anonymous: {
|
anonymous: {
|
||||||
@@ -1248,6 +1248,7 @@ describe('Parse.ACL', () => {
|
|||||||
var user = req.object;
|
var user = req.object;
|
||||||
var acl = new Parse.ACL(user);
|
var acl = new Parse.ACL(user);
|
||||||
user.setACL(acl);
|
user.setACL(acl);
|
||||||
|
console.log('IN AFTER SAVE!');
|
||||||
user.save(null, {useMasterKey: true}).then(user => {
|
user.save(null, {useMasterKey: true}).then(user => {
|
||||||
new Parse.Query('_User').get(user.objectId).then(() => {
|
new Parse.Query('_User').get(user.objectId).then(() => {
|
||||||
fail('should not have fetched user without public read enabled');
|
fail('should not have fetched user without public read enabled');
|
||||||
@@ -1256,7 +1257,7 @@ describe('Parse.ACL', () => {
|
|||||||
expect(error.code).toEqual(Parse.Error.OBJECT_NOT_FOUND);
|
expect(error.code).toEqual(Parse.Error.OBJECT_NOT_FOUND);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
}, done.fail);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ if (process.env.PARSE_SERVER_TEST_DB === 'postgres') {
|
|||||||
startDB = require('mongodb-runner/mocha/before').bind({
|
startDB = require('mongodb-runner/mocha/before').bind({
|
||||||
timeout: () => {},
|
timeout: () => {},
|
||||||
slow: () => {}
|
slow: () => {}
|
||||||
});
|
})
|
||||||
stopDB = require('mongodb-runner/mocha/after');
|
stopDB = require('mongodb-runner/mocha/after');
|
||||||
databaseAdapter = new MongoStorageAdapter({
|
databaseAdapter = new MongoStorageAdapter({
|
||||||
uri: mongoURI,
|
uri: mongoURI,
|
||||||
@@ -118,44 +118,40 @@ if (process.env.PARSE_SERVER_TEST_CACHE === 'redis') {
|
|||||||
const openConnections = {};
|
const openConnections = {};
|
||||||
|
|
||||||
// Set up a default API server for testing with default configuration.
|
// Set up a default API server for testing with default configuration.
|
||||||
var app = express();
|
var app;
|
||||||
var api = new ParseServer(defaultConfiguration);
|
var api;
|
||||||
app.use('/1', api);
|
var server;
|
||||||
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] });
|
|
||||||
});
|
|
||||||
// Allows testing specific configurations of Parse Server
|
// Allows testing specific configurations of Parse Server
|
||||||
const reconfigureServer = changedConfiguration => {
|
const reconfigureServer = changedConfiguration => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
server.close(() => {
|
if (server) {
|
||||||
try {
|
return server.close(() => {
|
||||||
const newConfiguration = Object.assign({}, defaultConfiguration, changedConfiguration, {
|
server = undefined;
|
||||||
__indexBuildCompletionCallbackForTests: indexBuildPromise => indexBuildPromise.then(resolve, reject)
|
reconfigureServer(changedConfiguration).then(resolve, reject);
|
||||||
});
|
});
|
||||||
cache.clear();
|
}
|
||||||
app = express();
|
try {
|
||||||
api = new ParseServer(newConfiguration);
|
const newConfiguration = Object.assign({}, defaultConfiguration, changedConfiguration, {
|
||||||
api.use(require('./testing-routes').router);
|
__indexBuildCompletionCallbackForTests: indexBuildPromise => indexBuildPromise.then(resolve, reject)
|
||||||
app.use('/1', api);
|
});
|
||||||
app.use('/1', () => {
|
cache.clear();
|
||||||
fail('should not call next');
|
app = express();
|
||||||
});
|
api = new ParseServer(newConfiguration);
|
||||||
server = app.listen(port);
|
api.use(require('./testing-routes').router);
|
||||||
server.on('connection', connection => {
|
app.use('/1', api);
|
||||||
const key = `${connection.remoteAddress}:${connection.remotePort}`;
|
app.use('/1', () => {
|
||||||
openConnections[key] = connection;
|
fail('should not call next');
|
||||||
connection.on('close', () => { delete openConnections[key] });
|
});
|
||||||
});
|
server = app.listen(port);
|
||||||
} catch(error) {
|
server.on('connection', connection => {
|
||||||
reject(error);
|
const key = `${connection.remoteAddress}:${connection.remotePort}`;
|
||||||
}
|
openConnections[key] = connection;
|
||||||
});
|
connection.on('close', () => { delete openConnections[key] });
|
||||||
|
});
|
||||||
|
} catch(error) {
|
||||||
|
reject(error);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,13 +6,14 @@ var Parse = require('parse/node').Parse;
|
|||||||
var rest = require('../src/rest');
|
var rest = require('../src/rest');
|
||||||
var request = require('request');
|
var request = require('request');
|
||||||
|
|
||||||
var config = new Config('test');
|
let config;
|
||||||
const database = config.database;
|
let database;
|
||||||
|
|
||||||
describe('rest create', () => {
|
describe('rest create', () => {
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
config = new Config('test');
|
config = new Config('test');
|
||||||
|
database = config.database;
|
||||||
});
|
});
|
||||||
|
|
||||||
it('handles _id', done => {
|
it('handles _id', done => {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ var request = require('request');
|
|||||||
var dd = require('deep-diff');
|
var dd = require('deep-diff');
|
||||||
var Config = require('../src/Config');
|
var Config = require('../src/Config');
|
||||||
|
|
||||||
var config = new Config('test');
|
var config;
|
||||||
|
|
||||||
var hasAllPODobject = () => {
|
var hasAllPODobject = () => {
|
||||||
var obj = new Parse.Object('HasAllPOD');
|
var obj = new Parse.Object('HasAllPOD');
|
||||||
@@ -131,8 +131,11 @@ var masterKeyHeaders = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
describe('schemas', () => {
|
describe('schemas', () => {
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
config = new Config('test');
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
config.database.schemaCache.clear();
|
config.database.schemaCache.clear();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user