Files
mongo/jstests/core/shell/shell_connection_strings.js
Joseph Prince d04dc10cac SERVER-82311 rename test tag
GitOrigin-RevId: 598fb15a21c0c4e53ef47a4b5c5dc6f5ae5fd5ed
2023-12-14 06:03:22 +00:00

37 lines
1.4 KiB
JavaScript

// Test mongo shell connect strings.
//
// @tags: [
// # The test runs commands that are not allowed with security token: eval.
// not_allowed_with_signed_security_token,
// uses_multiple_connections,
// docker_incompatible,
// ]
const mongod = new MongoURI(db.getMongo().host).servers[0];
const host = mongod.host;
const port = mongod.port;
function testConnect(ok, ...args) {
const exitCode = runMongoProgram('mongo', '--eval', ';', ...args);
if (ok) {
assert.eq(exitCode, 0, "failed to connect with `" + args.join(' ') + "`");
} else {
assert.neq(exitCode, 0, "unexpectedly succeeded connecting with `" + args.join(' ') + "`");
}
}
testConnect(true, `${host}:${port}`);
testConnect(true, `${host}:${port}/test`);
testConnect(true, `${host}:${port}/admin`);
testConnect(true, host, '--port', port);
testConnect(true, '--host', host, '--port', port, 'test');
testConnect(true, '--host', host, '--port', port, 'admin');
testConnect(true, `mongodb://${host}:${port}/test`);
testConnect(true, `mongodb://${host}:${port}/test?connectTimeoutMS=10000`);
// if a full URI is provided, you cannot also specify host or port
testConnect(false, `${host}/test`, '--port', port);
testConnect(false, `mongodb://${host}:${port}/test`, '--port', port);
testConnect(false, `mongodb://${host}:${port}/test`, '--host', host);
testConnect(false, `mongodb://${host}:${port}/test`, '--host', host, '--port', port);