feat: Add support for more MongoDB driver options (#9911)

This commit is contained in:
Manuel
2025-11-07 21:41:59 +01:00
committed by GitHub
parent 412406915f
commit cff451eabd
5 changed files with 372 additions and 21 deletions

View File

@@ -73,19 +73,70 @@ describe('Config Keys', () => {
filesAdapter: null,
databaseAdapter: null,
databaseOptions: {
retryWrites: true,
maxTimeMS: 1000,
maxStalenessSeconds: 10,
maxPoolSize: 10,
minPoolSize: 5,
serverSelectionTimeoutMS: 5000,
maxIdleTimeMS: 60000,
heartbeatFrequencyMS: 10000,
connectTimeoutMS: 5000,
socketTimeoutMS: 5000,
appName: 'MyParseApp',
// Cannot be tested as it requires authentication setup
// authMechanism: 'SCRAM-SHA-256',
// authMechanismProperties: { SERVICE_NAME: 'mongodb' },
authSource: 'admin',
autoSelectFamily: true,
autoSelectFamilyAttemptTimeout: 3000,
disableIndexFieldValidation: true
compressors: ['zlib'],
connectTimeoutMS: 5000,
directConnection: false,
disableIndexFieldValidation: true,
forceServerObjectId: false,
heartbeatFrequencyMS: 10000,
localThresholdMS: 15,
maxConnecting: 2,
maxIdleTimeMS: 60000,
maxPoolSize: 10,
maxStalenessSeconds: 90,
maxTimeMS: 1000,
minPoolSize: 5,
// Cannot be tested as it requires a proxy setup
// proxyHost: 'proxy.example.com',
// proxyPassword: 'proxypass',
// proxyPort: 1080,
// proxyUsername: 'proxyuser',
readConcernLevel: 'majority',
readPreference: 'secondaryPreferred',
readPreferenceTags: [{ dc: 'east' }],
// Cannot be tested as it requires a replica set setup
// replicaSet: 'myReplicaSet',
retryReads: true,
retryWrites: true,
serverMonitoringMode: 'auto',
serverSelectionTimeoutMS: 5000,
socketTimeoutMS: 5000,
// Cannot be tested as it requires a replica cluster setup
// srvMaxHosts: 0,
// srvServiceName: 'mongodb',
ssl: false,
tls: false,
tlsAllowInvalidCertificates: false,
tlsAllowInvalidHostnames: false,
tlsCAFile: __dirname + '/support/cert/cert.pem',
tlsCertificateKeyFile: __dirname + '/support/cert/cert.pem',
tlsCertificateKeyFilePassword: 'password',
waitQueueTimeoutMS: 5000,
zlibCompressionLevel: 6,
},
})).toBeResolved();
await expectAsync(reconfigureServer({
databaseURI: 'mongodb://localhost:27017/parse',
filesAdapter: null,
databaseAdapter: null,
databaseOptions: {
// The following option needs to be tested separately due to driver config rules
tlsInsecure: false,
},
})).toBeResolved();
expect(loggerErrorSpy.calls.all().reduce((s, call) => s += call.args[0], '')).not.toMatch(invalidKeyErrorMessage);