Ensure read preference is never overriden, so DB config prevails (#4833)
This commit is contained in:
@@ -27,11 +27,12 @@ describe_only_db('mongo')('Read preference option', () => {
|
|||||||
let myObjectReadPreference = null;
|
let myObjectReadPreference = null;
|
||||||
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 = call.args[2].readPreference.preference;
|
myObjectReadPreference = true;
|
||||||
|
expect(call.args[2].readPreference).toBeUndefined();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(myObjectReadPreference).toEqual(ReadPreference.PRIMARY);
|
expect(myObjectReadPreference).toBe(true);
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
@@ -442,18 +443,20 @@ describe_only_db('mongo')('Read preference option', () => {
|
|||||||
let myObjectReadPreference2 = null;
|
let myObjectReadPreference2 = null;
|
||||||
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 = call.args[2].readPreference.preference;
|
myObjectReadPreference0 = true;
|
||||||
|
expect(call.args[2].readPreference).toBeUndefined();
|
||||||
}
|
}
|
||||||
if (call.args[0].indexOf('MyObject1') >= 0) {
|
if (call.args[0].indexOf('MyObject1') >= 0) {
|
||||||
myObjectReadPreference1 = call.args[2].readPreference.preference;
|
myObjectReadPreference1 = true;
|
||||||
|
expect(call.args[2].readPreference).toBeUndefined();
|
||||||
}
|
}
|
||||||
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;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(myObjectReadPreference0).toEqual(ReadPreference.PRIMARY);
|
expect(myObjectReadPreference0).toBe(true);
|
||||||
expect(myObjectReadPreference1).toEqual(ReadPreference.PRIMARY);
|
expect(myObjectReadPreference1).toBe(true);
|
||||||
expect(myObjectReadPreference2).toEqual(ReadPreference.SECONDARY);
|
expect(myObjectReadPreference2).toEqual(ReadPreference.SECONDARY);
|
||||||
|
|
||||||
done();
|
done();
|
||||||
@@ -555,18 +558,20 @@ describe_only_db('mongo')('Read preference option', () => {
|
|||||||
let myObjectReadPreference2 = null;
|
let myObjectReadPreference2 = null;
|
||||||
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 = call.args[2].readPreference.preference;
|
myObjectReadPreference0 = true;
|
||||||
|
expect(call.args[2].readPreference).toBeUndefined();
|
||||||
}
|
}
|
||||||
if (call.args[0].indexOf('MyObject1') >= 0) {
|
if (call.args[0].indexOf('MyObject1') >= 0) {
|
||||||
myObjectReadPreference1 = call.args[2].readPreference.preference;
|
myObjectReadPreference1 = true;
|
||||||
|
expect(call.args[2].readPreference).toBeUndefined();
|
||||||
}
|
}
|
||||||
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;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(myObjectReadPreference0).toEqual(ReadPreference.PRIMARY);
|
expect(myObjectReadPreference0).toBe(true);
|
||||||
expect(myObjectReadPreference1).toEqual(ReadPreference.PRIMARY);
|
expect(myObjectReadPreference1).toBe(true);
|
||||||
expect(myObjectReadPreference2).toEqual(ReadPreference.SECONDARY);
|
expect(myObjectReadPreference2).toEqual(ReadPreference.SECONDARY);
|
||||||
|
|
||||||
done();
|
done();
|
||||||
|
|||||||
@@ -626,8 +626,6 @@ export class MongoStorageAdapter implements StorageAdapter {
|
|||||||
readPreference = ReadPreference.NEAREST;
|
readPreference = ReadPreference.NEAREST;
|
||||||
break;
|
break;
|
||||||
case undefined:
|
case undefined:
|
||||||
// this is to match existing tests, which were failing as mongodb@3.0 don't report readPreference anymore
|
|
||||||
readPreference = ReadPreference.PRIMARY;
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new Parse.Error(Parse.Error.INVALID_QUERY, 'Not supported read preference.');
|
throw new Parse.Error(Parse.Error.INVALID_QUERY, 'Not supported read preference.');
|
||||||
|
|||||||
Reference in New Issue
Block a user