diff --git a/package.json b/package.json index ac45c57e48..4961608f44 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "redis": "2.6.2", "request": "2.74.0", "request-promise": "4.1.0", - "semver": "^5.2.0", + "semver": "5.2.0", "tv4": "1.2.7", "winston": "2.2.0", "winston-daily-rotate-file": "1.2.0", @@ -67,14 +67,12 @@ }, "scripts": { "dev": "npm run build && node bin/dev", - "build": "babel src/ -d lib/", - "pretest": "cross-env MONGODB_VERSION=${MONGODB_VERSION:=3.2.6} MONGODB_STORAGE_ENGINE=mmapv1 mongodb-runner start", - "test": "cross-env NODE_ENV=test TESTING=1 babel-node $COVERAGE_OPTION ./node_modules/jasmine/bin/jasmine.js", - "test:win": "npm run pretest && cross-env NODE_ENV=test TESTING=1 babel-node ./node_modules/jasmine/bin/jasmine.js && npm run posttest", - "posttest": "mongodb-runner stop", - "coverage": "cross-env COVERAGE_OPTION='./node_modules/.bin/istanbul cover' npm test", - "coverage:win": "npm run pretest && cross-env NODE_ENV=test TESTING=1 babel-node ./node_modules/babel-istanbul/lib/cli.js cover ./node_modules/jasmine/bin/jasmine.js && npm run posttest", - "start": "node ./bin/parse-server", + "build": "./node_modules/.bin/babel src/ -d lib/", + "pretest": "test -z \"$PARSE_SERVER_TEST_DB\" && cross-env MONGODB_VERSION=${MONGODB_VERSION:=3.2.6} MONGODB_STORAGE_ENGINE=mmapv1 ./node_modules/.bin/mongodb-runner start || echo", + "test": "cross-env NODE_ENV=test TESTING=1 ./node_modules/.bin/babel-node $COVERAGE_OPTION ./node_modules/jasmine/bin/jasmine.js", + "test:win": "npm run pretest && cross-env NODE_ENV=test TESTING=1 ./node_modules/.bin/babel-node ./node_modules/babel-istanbul/lib/cli.js cover -x **/spec/** ./node_modules/jasmine/bin/jasmine.js && npm run posttest", + "posttest": "./node_modules/.bin/mongodb-runner stop", + "coverage": "cross-env COVERAGE_OPTION='./node_modules/babel-istanbul/lib/cli.js cover -x **/spec/**' npm test", "prepublish": "npm run build" }, "engines": { diff --git a/spec/MongoStorageAdapter.spec.js b/spec/MongoStorageAdapter.spec.js index 6c2666a4b0..102054b788 100644 --- a/spec/MongoStorageAdapter.spec.js +++ b/spec/MongoStorageAdapter.spec.js @@ -6,7 +6,7 @@ const databaseURI = 'mongodb://localhost:27017/parseServerMongoAdapterTestDataba // These tests are specific to the mongo storage adapter + mongo storage format // and will eventually be moved into their own repo -describe('MongoStorageAdapter', () => { +describe_only_db('mongo')('MongoStorageAdapter', () => { beforeEach(done => { new MongoStorageAdapter({ uri: databaseURI }) .deleteAllClasses() diff --git a/spec/ParseACL.spec.js b/spec/ParseACL.spec.js index bbab57d526..5b5a3c8677 100644 --- a/spec/ParseACL.spec.js +++ b/spec/ParseACL.spec.js @@ -1093,7 +1093,7 @@ describe('Parse.ACL', () => { }); }); - it("acl saveAll with permissions", (done) => { + it_exclude_dbs(['postgres'])("acl saveAll with permissions", (done) => { Parse.User.signUp("alice", "wonderland", null, { success: function(alice) { var acl = new Parse.ACL(alice); diff --git a/spec/ParseAPI.spec.js b/spec/ParseAPI.spec.js index a4ea9d902f..a33cbe8325 100644 --- a/spec/ParseAPI.spec.js +++ b/spec/ParseAPI.spec.js @@ -348,7 +348,7 @@ describe('miscellaneous', function() { }); }); - it('test rest_create_app', function(done) { + it_exclude_dbs(['postgres'])('test rest_create_app', function(done) { var appId; Parse._request('POST', 'rest_create_app').then((res) => { expect(typeof res.application_id).toEqual('string'); diff --git a/spec/ParseFile.spec.js b/spec/ParseFile.spec.js index 90731c0941..c37377ffe3 100644 --- a/spec/ParseFile.spec.js +++ b/spec/ParseFile.spec.js @@ -13,7 +13,7 @@ for (var i = 0; i < str.length; i++) { describe('Parse.File testing', () => { describe('creating files', () => { - it('works with Content-Type', done => { + it_exclude_dbs(['postgres'])('works with Content-Type', done => { var headers = { 'Content-Type': 'application/octet-stream', 'X-Parse-Application-Id': 'test', @@ -37,7 +37,7 @@ describe('Parse.File testing', () => { }); - it('works with _ContentType', done => { + it_exclude_dbs(['postgres'])('works with _ContentType', done => { request.post({ url: 'http://localhost:8378/1/files/file', @@ -61,7 +61,7 @@ describe('Parse.File testing', () => { }); }); - it('works without Content-Type', done => { + it_exclude_dbs(['postgres'])('works without Content-Type', done => { var headers = { 'X-Parse-Application-Id': 'test', 'X-Parse-REST-API-Key': 'rest' @@ -84,7 +84,7 @@ describe('Parse.File testing', () => { }); }); - it('supports REST end-to-end file create, read, delete, read', done => { + it_exclude_dbs(['postgres'])('supports REST end-to-end file create, read, delete, read', done => { var headers = { 'Content-Type': 'image/jpeg', 'X-Parse-Application-Id': 'test', @@ -128,7 +128,7 @@ describe('Parse.File testing', () => { }); }); - it('blocks file deletions with missing or incorrect master-key header', done => { + it_exclude_dbs(['postgres'])('blocks file deletions with missing or incorrect master-key header', done => { var headers = { 'Content-Type': 'image/jpeg', 'X-Parse-Application-Id': 'test', @@ -173,7 +173,7 @@ describe('Parse.File testing', () => { }); }); - it('handles other filetypes', done => { + it_exclude_dbs(['postgres'])('handles other filetypes', done => { var headers = { 'Content-Type': 'image/jpeg', 'X-Parse-Application-Id': 'test', @@ -196,7 +196,7 @@ describe('Parse.File testing', () => { }); }); - it("save file", done => { + it_exclude_dbs(['postgres'])("save file", done => { var file = new Parse.File("hello.txt", data, "text/plain"); ok(!file.url()); file.save(expectSuccess({ @@ -316,7 +316,7 @@ describe('Parse.File testing', () => { })); }); - it("saving an already saved file", done => { + it_exclude_dbs(['postgres'])("saving an already saved file", done => { var file = new Parse.File("hello.txt", data, "text/plain"); ok(!file.url()); file.save(expectSuccess({ @@ -337,7 +337,7 @@ describe('Parse.File testing', () => { })); }); - it("two saves at the same time", done => { + it_exclude_dbs(['postgres'])("two saves at the same time", done => { var file = new Parse.File("hello.txt", data, "text/plain"); var firstName; @@ -369,7 +369,7 @@ describe('Parse.File testing', () => { })); }); - it("content-type used with no extension", done => { + it_exclude_dbs(['postgres'])("content-type used with no extension", done => { var headers = { 'Content-Type': 'text/html', 'X-Parse-Application-Id': 'test', @@ -390,7 +390,7 @@ describe('Parse.File testing', () => { }); }); - it("filename is url encoded", done => { + it_exclude_dbs(['postgres'])("filename is url encoded", done => { var headers = { 'Content-Type': 'text/html', 'X-Parse-Application-Id': 'test', diff --git a/spec/ParseUser.spec.js b/spec/ParseUser.spec.js index 0be4ed171e..b5e4721d6e 100644 --- a/spec/ParseUser.spec.js +++ b/spec/ParseUser.spec.js @@ -1698,7 +1698,7 @@ describe('Parse.User testing', () => { bob.setPassword('meower'); return bob.save(); }).then(() => { - return Parse.User.logIn('bob', 'meower'); + return Parse.User.logIn('bob', 'meower'); }).then((bob) => { expect(bob.getUsername()).toEqual('bob'); done(); diff --git a/spec/helper.js b/spec/helper.js index c724ea93b7..8a02d24499 100644 --- a/spec/helper.js +++ b/spec/helper.js @@ -342,6 +342,16 @@ global.fit_exclude_dbs = excluded => { } } +global.describe_only_db = db => { + if (process.env.PARSE_SERVER_TEST_DB == db) { + return describe; + } else if (!process.env.PARSE_SERVER_TEST_DB && db == 'mongo') { + return describe; + } else { + return () => {}; + } +} + // LiveQuery test setting require('../src/LiveQuery/PLog').logLevel = 'NONE'; var libraryCache = {};