Skip to content

Commit c024928

Browse files
authored
Advancements with postgres (#2510)
* Start DB runner from tests * Connect GridstoreAdapter only when needed * removes unused package * better test errors reporting * Adds support for __op.Delete * Better test error reporting * Makes sure all tests can run without crashing * Use xdescribe to skip test suite * Removes unused dependencies * Let volatiles classes be created with PG on start * Do not fail if class dont exist * adds index.spec.js to the pg suite * Use a new config each test to prevent side effects * Enable EmailVerificationToken specs with pg * Makes sure failure output is not cut * Reduces number of ignored tests in ParseObject.spec * Inspect reconfiguration errors * Mark GlobalConfig is incompatible with PG - Problem is with nested updates (param.prop = value) * PG: Nested JSON queries and updates - Adds support for nested json and . operator queries - Adds debug support for PG adapter - Adds loglevel support in helper * Enable working specs in ParseUser * Sets default logLevel in tests to undefined * Adds File type support, retores purchaseValidation specs * Adds support for updating jsonb objects - Restores PushController tests * Proper implementation of deleteByQuery and ORs - Adds ParseInstallation spec to the test suite * xit only failing tests * Nit on ParseAPI spec * add sorting operator * properly bound order keys * reverts describe_only_db behavior * Enables passing tests * Adds basic support for relations, upsertOneObject aliased to createObject * progress on queries options * Fix ACL update related problems * Creates relation tables on class creation * Adds Relation tests * remove flaky tests * use promises instead of CB * disable flaky test * nits * Fixes on schema spec - Next thing is to implemenet geopoint and files correctly * fix failues * Basic GeoPoint support * Adds support for $nearSphere/$maxDistance geopoint queries * enable passing tests * drop tables afterEach for PG, clean up relation tables too * Better initialization/dropTables
1 parent 2f1ee21 commit c024928

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1447
-716
lines changed

.travis.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ addons:
99
before_script:
1010
- ls -al "$HOME/.mongodb/versions"
1111
- psql -c 'create database parse_server_postgres_adapter_test_database;' -U postgres
12+
- psql -c 'CREATE EXTENSION postgis;' -U postgres -d parse_server_postgres_adapter_test_database
13+
- psql -c 'CREATE EXTENSION postgis_topology;' -U postgres -d parse_server_postgres_adapter_test_database
1214
env:
1315
global:
1416
- COVERAGE_OPTION='./node_modules/.bin/istanbul cover'
@@ -26,7 +28,8 @@ branches:
2628
cache:
2729
directories:
2830
- "$HOME/.mongodb/versions"
29-
after_script: "./node_modules/.bin/codecov"
31+
after_script:
32+
- bash <(curl -s https://codecov.io/bash)
3033
deploy:
3134
provider: npm
3235
email:

package.json

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,8 @@
1919
"license": "BSD-3-Clause",
2020
"dependencies": {
2121
"babel-polyfill": "6.13.0",
22-
"babel-runtime": "6.11.6",
2322
"bcrypt-nodejs": "0.0.3",
2423
"body-parser": "1.15.2",
25-
"colors": "1.1.2",
2624
"commander": "2.9.0",
2725
"deepcopy": "0.6.3",
2826
"express": "4.14.0",
@@ -41,7 +39,6 @@
4139
"pg-promise": "5.2.7",
4240
"redis": "2.6.2",
4341
"request": "2.74.0",
44-
"request-promise": "4.1.1",
4542
"semver": "5.2.0",
4643
"tv4": "1.2.7",
4744
"winston": "2.2.0",
@@ -56,22 +53,20 @@
5653
"babel-preset-es2015": "6.13.2",
5754
"babel-preset-stage-0": "6.5.0",
5855
"babel-register": "6.11.6",
59-
"codecov": "1.0.1",
6056
"cross-env": "2.0.0",
6157
"deep-diff": "0.3.4",
6258
"gaze": "1.1.1",
6359
"istanbul": "1.0.0-alpha.1",
6460
"jasmine": "2.4.1",
6561
"mongodb-runner": "3.3.2",
66-
"nodemon": "1.10.0"
62+
"nodemon": "1.10.0",
63+
"request-promise": "^4.1.1"
6764
},
6865
"scripts": {
6966
"dev": "npm run build && node bin/dev",
7067
"build": "babel src/ -d lib/",
71-
"pretest": "test -z \"$PARSE_SERVER_TEST_DB\" && cross-env MONGODB_VERSION=${MONGODB_VERSION:=3.2.6} MONGODB_STORAGE_ENGINE=mmapv1 mongodb-runner start || echo",
72-
"test": "cross-env NODE_ENV=test TESTING=1 babel-node $COVERAGE_OPTION ./node_modules/jasmine/bin/jasmine.js",
68+
"test": "cross-env MONGODB_VERSION=${MONGODB_VERSION:=3.2.6} MONGODB_STORAGE_ENGINE=mmapv1 NODE_ENV=test TESTING=1 babel-node $COVERAGE_OPTION ./node_modules/jasmine/bin/jasmine.js",
7369
"test:win": "npm run pretest && cross-env NODE_ENV=test TESTING=1 babel-node ./node_modules/jasmine/bin/jasmine.js && npm run posttest",
74-
"posttest": "mongodb-runner stop",
7570
"coverage": "cross-env COVERAGE_OPTION='./node_modules/.bin/istanbul cover' npm test",
7671
"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",
7772
"start": "node ./bin/parse-server",

spec/CloudCode.spec.js

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -722,7 +722,7 @@ it('beforeSave should not affect fetched pointers', done => {
722722
});
723723
});
724724

725-
it_exclude_dbs(['postgres'])('should fully delete objects when using `unset` with beforeSave (regression test for #1840)', done => {
725+
it('should fully delete objects when using `unset` with beforeSave (regression test for #1840)', done => {
726726
var TestObject = Parse.Object.extend('TestObject');
727727
var NoBeforeSaveObject = Parse.Object.extend('NoBeforeSave');
728728
var BeforeSaveObject = Parse.Object.extend('BeforeSaveChanged');
@@ -746,7 +746,7 @@ it('beforeSave should not affect fetched pointers', done => {
746746
})
747747
.then(object => {
748748
res.success(object);
749-
});
749+
}).catch(res.error);
750750
});
751751

752752
Parse.Cloud.define('removeme2', (req, res) => {
@@ -762,7 +762,7 @@ it('beforeSave should not affect fetched pointers', done => {
762762
})
763763
.then(object => {
764764
res.success(object);
765-
});
765+
}).catch(res.error);
766766
});
767767

768768
Parse.Cloud.run('removeme')
@@ -775,10 +775,13 @@ it('beforeSave should not affect fetched pointers', done => {
775775
expect(aBeforeSaveObj.get('before')).toEqual('save');
776776
expect(aBeforeSaveObj.get('remove')).toEqual(undefined);
777777
done();
778+
}).catch((err) => {
779+
jfail(err);
780+
done();
778781
});
779782
});
780783

781-
it_exclude_dbs(['postgres'])('should fully delete objects when using `unset` with beforeSave (regression test for #1840)', done => {
784+
it('should fully delete objects when using `unset` with beforeSave (regression test for #1840)', done => {
782785
var TestObject = Parse.Object.extend('TestObject');
783786
var BeforeSaveObject = Parse.Object.extend('BeforeSaveChanged');
784787

@@ -802,12 +805,12 @@ it('beforeSave should not affect fetched pointers', done => {
802805
expect(object.get('remove')).toBeUndefined();
803806
done();
804807
}).fail((err) => {
805-
console.error(err);
808+
jfail(err);
806809
done();
807-
})
810+
});
808811
});
809812

810-
it_exclude_dbs(['postgres'])('should not include relation op (regression test for #1606)', done => {
813+
it('should not include relation op (regression test for #1606)', done => {
811814
var TestObject = Parse.Object.extend('TestObject');
812815
var BeforeSaveObject = Parse.Object.extend('BeforeSaveChanged');
813816
let testObj;
@@ -818,7 +821,7 @@ it('beforeSave should not affect fetched pointers', done => {
818821
testObj.save().then(() => {
819822
object.relation('testsRelation').add(testObj);
820823
res.success();
821-
})
824+
}, res.error);
822825
});
823826

824827
let object = new BeforeSaveObject();
@@ -827,7 +830,7 @@ it('beforeSave should not affect fetched pointers', done => {
827830
expect(() => { objectAgain.relation('testsRelation') }).not.toThrow();
828831
done();
829832
}).fail((err) => {
830-
console.error(err);
833+
jfail(err);
831834
done();
832835
})
833836
});

0 commit comments

Comments
 (0)