Update mongodb to the latest version 🚀 (#4855)
* fix(package): update mongodb to version 3.1.0 * chore(package): update lockfile https://npm.im/greenkeeper-lockfile * starting mongo 3.1.0, read preferences are passed again * Adds test confirming #4831 is properly functional now
This commit is contained in:
committed by
Florent Vilmart
parent
43be9fed9d
commit
320eba1081
6598
package-lock.json
generated
6598
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -32,7 +32,7 @@
|
|||||||
"lodash": "4.17.5",
|
"lodash": "4.17.5",
|
||||||
"lru-cache": "4.1.2",
|
"lru-cache": "4.1.2",
|
||||||
"mime": "2.3.1",
|
"mime": "2.3.1",
|
||||||
"mongodb": "3.0.7",
|
"mongodb": "3.1.0",
|
||||||
"multer": "1.3.0",
|
"multer": "1.3.0",
|
||||||
"parse": "1.11.1",
|
"parse": "1.11.1",
|
||||||
"pg-promise": "8.4.0",
|
"pg-promise": "8.4.0",
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ describe_only_db('mongo')('Read preference option', () => {
|
|||||||
databaseAdapter.database.serverConfig.cursor.calls.all().forEach((call) => {
|
databaseAdapter.database.serverConfig.cursor.calls.all().forEach((call) => {
|
||||||
if (call.args[0].indexOf('MyObject') >= 0) {
|
if (call.args[0].indexOf('MyObject') >= 0) {
|
||||||
myObjectReadPreference = true;
|
myObjectReadPreference = true;
|
||||||
expect(call.args[2].readPreference).toBeUndefined();
|
expect(call.args[2].readPreference.preference).toBe(ReadPreference.PRIMARY);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -39,6 +39,45 @@ describe_only_db('mongo')('Read preference option', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should preserve the read preference set (#4831)', async () => {
|
||||||
|
const { MongoStorageAdapter } = require('../src/Adapters/Storage/Mongo/MongoStorageAdapter');
|
||||||
|
const adapterOptions = {
|
||||||
|
uri: 'mongodb://localhost:27017/parseServerMongoAdapterTestDatabase',
|
||||||
|
mongoOptions: {
|
||||||
|
readPreference: ReadPreference.NEAREST,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
await reconfigureServer({ databaseAdapter: new MongoStorageAdapter(adapterOptions) });
|
||||||
|
|
||||||
|
const databaseAdapter = (Config.get(Parse.applicationId)).database.adapter;
|
||||||
|
|
||||||
|
const obj0 = new Parse.Object('MyObject');
|
||||||
|
obj0.set('boolKey', false);
|
||||||
|
const obj1 = new Parse.Object('MyObject');
|
||||||
|
obj1.set('boolKey', true);
|
||||||
|
|
||||||
|
await Parse.Object.saveAll([obj0, obj1])
|
||||||
|
spyOn(databaseAdapter.database.serverConfig, 'cursor').and.callThrough();
|
||||||
|
|
||||||
|
const query = new Parse.Query('MyObject');
|
||||||
|
query.equalTo('boolKey', false);
|
||||||
|
|
||||||
|
const results = await query.find();
|
||||||
|
expect(results.length).toBe(1);
|
||||||
|
expect(results[0].get('boolKey')).toBe(false);
|
||||||
|
|
||||||
|
let myObjectReadPreference = null;
|
||||||
|
databaseAdapter.database.serverConfig.cursor.calls.all().forEach((call) => {
|
||||||
|
if (call.args[0].indexOf('MyObject') >= 0) {
|
||||||
|
myObjectReadPreference = true;
|
||||||
|
expect(call.args[2].readPreference.preference).toBe(ReadPreference.NEAREST);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(myObjectReadPreference).toBe(true);
|
||||||
|
console.log('OK!');
|
||||||
|
});
|
||||||
|
|
||||||
it('should change read preference in the beforeFind trigger', (done) => {
|
it('should change read preference in the beforeFind trigger', (done) => {
|
||||||
const databaseAdapter = (Config.get(Parse.applicationId)).database.adapter;
|
const databaseAdapter = (Config.get(Parse.applicationId)).database.adapter;
|
||||||
|
|
||||||
@@ -444,11 +483,11 @@ describe_only_db('mongo')('Read preference option', () => {
|
|||||||
databaseAdapter.database.serverConfig.cursor.calls.all().forEach((call) => {
|
databaseAdapter.database.serverConfig.cursor.calls.all().forEach((call) => {
|
||||||
if (call.args[0].indexOf('MyObject0') >= 0) {
|
if (call.args[0].indexOf('MyObject0') >= 0) {
|
||||||
myObjectReadPreference0 = true;
|
myObjectReadPreference0 = true;
|
||||||
expect(call.args[2].readPreference).toBeUndefined();
|
expect(call.args[2].readPreference.preference).toBe(ReadPreference.PRIMARY);
|
||||||
}
|
}
|
||||||
if (call.args[0].indexOf('MyObject1') >= 0) {
|
if (call.args[0].indexOf('MyObject1') >= 0) {
|
||||||
myObjectReadPreference1 = true;
|
myObjectReadPreference1 = true;
|
||||||
expect(call.args[2].readPreference).toBeUndefined();
|
expect(call.args[2].readPreference.preference).toBe(ReadPreference.PRIMARY);
|
||||||
}
|
}
|
||||||
if (call.args[0].indexOf('MyObject2') >= 0) {
|
if (call.args[0].indexOf('MyObject2') >= 0) {
|
||||||
myObjectReadPreference2 = call.args[2].readPreference.preference;
|
myObjectReadPreference2 = call.args[2].readPreference.preference;
|
||||||
@@ -559,11 +598,11 @@ describe_only_db('mongo')('Read preference option', () => {
|
|||||||
databaseAdapter.database.serverConfig.cursor.calls.all().forEach((call) => {
|
databaseAdapter.database.serverConfig.cursor.calls.all().forEach((call) => {
|
||||||
if (call.args[0].indexOf('MyObject0') >= 0) {
|
if (call.args[0].indexOf('MyObject0') >= 0) {
|
||||||
myObjectReadPreference0 = true;
|
myObjectReadPreference0 = true;
|
||||||
expect(call.args[2].readPreference).toBeUndefined();
|
expect(call.args[2].readPreference.preference).toBe(ReadPreference.PRIMARY);
|
||||||
}
|
}
|
||||||
if (call.args[0].indexOf('MyObject1') >= 0) {
|
if (call.args[0].indexOf('MyObject1') >= 0) {
|
||||||
myObjectReadPreference1 = true;
|
myObjectReadPreference1 = true;
|
||||||
expect(call.args[2].readPreference).toBeUndefined();
|
expect(call.args[2].readPreference.preference).toBe(ReadPreference.PRIMARY);
|
||||||
}
|
}
|
||||||
if (call.args[0].indexOf('MyObject2') >= 0) {
|
if (call.args[0].indexOf('MyObject2') >= 0) {
|
||||||
myObjectReadPreference2 = call.args[2].readPreference.preference;
|
myObjectReadPreference2 = call.args[2].readPreference.preference;
|
||||||
|
|||||||
Reference in New Issue
Block a user