Skip to content

Commit ab5b759

Browse files
authored
[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
1 parent f40019a commit ab5b759

File tree

5 files changed

+51
-56
lines changed

5 files changed

+51
-56
lines changed

.travis.yml

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
language: node_js
22
dist: trusty
33
node_js:
4-
- '4.6'
5-
- '6.1'
4+
- '6.10'
5+
- '7.10'
66
services:
7+
- mongodb
78
- postgresql
89
- redis-server
910
- docker
@@ -27,24 +28,25 @@ env:
2728
global:
2829
- COVERAGE_OPTION='./node_modules/.bin/nyc'
2930
matrix:
30-
- MONGODB_VERSION=3.0.8
31-
- MONGODB_VERSION=3.2.6
31+
- MONGODB_VERSION=3.2.13
32+
- MONGODB_VERSION=3.4.4
3233
- PARSE_SERVER_TEST_DB=postgres
3334
- PARSE_SERVER_TEST_CACHE=redis
3435
before_script:
3536
- node -e 'require("./lib/index.js")'
3637
- psql -c 'create database parse_server_postgres_adapter_test_database;' -U postgres
3738
- psql -c 'CREATE EXTENSION postgis;' -U postgres -d parse_server_postgres_adapter_test_database
3839
- psql -c 'CREATE EXTENSION postgis_topology;' -U postgres -d parse_server_postgres_adapter_test_database
40+
- silent=1 mongodb-runner --start
3941
after_script:
4042
- bash <(curl -s https://codecov.io/bash)
4143

4244
jobs:
4345
include:
4446
# release on github latest branch
4547
- stage: release
46-
node_js: '6.1'
47-
env: RELEASE=github-latest
48+
node_js: '6.10'
49+
env:
4850
before_script: skip
4951
after_script: skip
5052
script: skip
@@ -54,14 +56,6 @@ jobs:
5456
script: ./resources/npm-git.sh
5557
on:
5658
branch: master
57-
# release on npm
58-
- stage: release
59-
before_script: skip
60-
after_script: skip
61-
script: skip
62-
node_js: '6.1'
63-
env: RELEASE=npm
64-
deploy:
6559
- provider: npm
6660
skip_cleanup: true
6761
email:

spec/ParseACL.spec.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// hungry/js/test/parse_acl_test.js
33
var rest = require('../src/rest');
44
var Config = require('../src/Config');
5-
var config = new Config('test');
65
var auth = require('../src/Auth');
76

87
describe('Parse.ACL', () => {
@@ -1235,6 +1234,7 @@ describe('Parse.ACL', () => {
12351234
});
12361235

12371236
it('regression test #701', done => {
1237+
const config = new Config('test');
12381238
var anonUser = {
12391239
authData: {
12401240
anonymous: {
@@ -1248,6 +1248,7 @@ describe('Parse.ACL', () => {
12481248
var user = req.object;
12491249
var acl = new Parse.ACL(user);
12501250
user.setACL(acl);
1251+
console.log('IN AFTER SAVE!');
12511252
user.save(null, {useMasterKey: true}).then(user => {
12521253
new Parse.Query('_User').get(user.objectId).then(() => {
12531254
fail('should not have fetched user without public read enabled');
@@ -1256,7 +1257,7 @@ describe('Parse.ACL', () => {
12561257
expect(error.code).toEqual(Parse.Error.OBJECT_NOT_FOUND);
12571258
done();
12581259
});
1259-
});
1260+
}, done.fail);
12601261
}
12611262
});
12621263

spec/helper.js

Lines changed: 32 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ if (process.env.PARSE_SERVER_TEST_DB === 'postgres') {
5151
startDB = require('mongodb-runner/mocha/before').bind({
5252
timeout: () => {},
5353
slow: () => {}
54-
});
54+
})
5555
stopDB = require('mongodb-runner/mocha/after');
5656
databaseAdapter = new MongoStorageAdapter({
5757
uri: mongoURI,
@@ -118,44 +118,40 @@ if (process.env.PARSE_SERVER_TEST_CACHE === 'redis') {
118118
const openConnections = {};
119119

120120
// Set up a default API server for testing with default configuration.
121-
var app = express();
122-
var api = new ParseServer(defaultConfiguration);
123-
app.use('/1', api);
124-
app.use('/1', () => {
125-
fail('should not call next');
126-
});
127-
var server = app.listen(port);
128-
server.on('connection', connection => {
129-
const key = `${connection.remoteAddress}:${connection.remotePort}`;
130-
openConnections[key] = connection;
131-
connection.on('close', () => { delete openConnections[key] });
132-
});
121+
var app;
122+
var api;
123+
var server;
124+
133125
// Allows testing specific configurations of Parse Server
134126
const reconfigureServer = changedConfiguration => {
135127
return new Promise((resolve, reject) => {
136-
server.close(() => {
137-
try {
138-
const newConfiguration = Object.assign({}, defaultConfiguration, changedConfiguration, {
139-
__indexBuildCompletionCallbackForTests: indexBuildPromise => indexBuildPromise.then(resolve, reject)
140-
});
141-
cache.clear();
142-
app = express();
143-
api = new ParseServer(newConfiguration);
144-
api.use(require('./testing-routes').router);
145-
app.use('/1', api);
146-
app.use('/1', () => {
147-
fail('should not call next');
148-
});
149-
server = app.listen(port);
150-
server.on('connection', connection => {
151-
const key = `${connection.remoteAddress}:${connection.remotePort}`;
152-
openConnections[key] = connection;
153-
connection.on('close', () => { delete openConnections[key] });
154-
});
155-
} catch(error) {
156-
reject(error);
157-
}
158-
});
128+
if (server) {
129+
return server.close(() => {
130+
server = undefined;
131+
reconfigureServer(changedConfiguration).then(resolve, reject);
132+
});
133+
}
134+
try {
135+
const newConfiguration = Object.assign({}, defaultConfiguration, changedConfiguration, {
136+
__indexBuildCompletionCallbackForTests: indexBuildPromise => indexBuildPromise.then(resolve, reject)
137+
});
138+
cache.clear();
139+
app = express();
140+
api = new ParseServer(newConfiguration);
141+
api.use(require('./testing-routes').router);
142+
app.use('/1', api);
143+
app.use('/1', () => {
144+
fail('should not call next');
145+
});
146+
server = app.listen(port);
147+
server.on('connection', connection => {
148+
const key = `${connection.remoteAddress}:${connection.remotePort}`;
149+
openConnections[key] = connection;
150+
connection.on('close', () => { delete openConnections[key] });
151+
});
152+
} catch(error) {
153+
reject(error);
154+
}
159155
});
160156
}
161157

spec/rest.spec.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@ var Parse = require('parse/node').Parse;
66
var rest = require('../src/rest');
77
var request = require('request');
88

9-
var config = new Config('test');
10-
const database = config.database;
9+
let config;
10+
let database;
1111

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

1414
beforeEach(() => {
1515
config = new Config('test');
16+
database = config.database;
1617
});
1718

1819
it('handles _id', done => {

spec/schemas.spec.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ var request = require('request');
55
var dd = require('deep-diff');
66
var Config = require('../src/Config');
77

8-
var config = new Config('test');
8+
var config;
99

1010
var hasAllPODobject = () => {
1111
var obj = new Parse.Object('HasAllPOD');
@@ -131,8 +131,11 @@ var masterKeyHeaders = {
131131
};
132132

133133
describe('schemas', () => {
134-
135134
beforeEach(() => {
135+
config = new Config('test');
136+
});
137+
138+
afterEach(() => {
136139
config.database.schemaCache.clear();
137140
});
138141

0 commit comments

Comments
 (0)