Skip to content

Commit e2a392b

Browse files
ci(NODE-6211): fix atlas connectivity tests in 5.x (#4152)
1 parent b491a0f commit e2a392b

File tree

7 files changed

+86
-89
lines changed

7 files changed

+86
-89
lines changed

.evergreen/config.in.yml

+12-18
Original file line numberDiff line numberDiff line change
@@ -434,29 +434,23 @@ functions:
434434
rm -rf ./node_modules/@aws-sdk/credential-providers
435435
436436
"run atlas tests":
437-
- command: shell.exec
438-
type: test
437+
# This creates secrets-export.sh, which is later sourced by run-tests.sh
438+
- command: subprocess.exec
439439
params:
440-
silent: true
441440
working_dir: "src"
442-
script: |
443-
cat <<EOT > prepare_atlas_connectivity.sh
444-
export ATLAS_CONNECTIVITY='${ATLAS_CONNECTIVITY}'
445-
EOT
446-
- command: shell.exec
441+
binary: bash
442+
args:
443+
- -c
444+
- ${DRIVERS_TOOLS}/.evergreen/secrets_handling/setup-secrets.sh drivers/atlas_connect
445+
- command: subprocess.exec
447446
type: test
448447
params:
449448
working_dir: "src"
450-
script: |
451-
# Disable xtrace (just in case it was accidentally set).
452-
set +x
453-
. ./prepare_atlas_connectivity.sh
454-
rm -f ./prepare_atlas_connectivity.sh
455-
456-
export PROJECT_DIRECTORY="$(pwd)"
457-
export NODE_LTS_VERSION='${NODE_LTS_VERSION}'
458-
459-
bash ${PROJECT_DIRECTORY}/.evergreen/run-atlas-tests.sh
449+
binary: bash
450+
env:
451+
NODE_LTS_VERSION: ${NODE_LTS_VERSION}
452+
args:
453+
- .evergreen/run-atlas-tests.sh
460454

461455
"run socks5 tests":
462456
- command: shell.exec

.evergreen/config.yml

+11-18
Original file line numberDiff line numberDiff line change
@@ -389,29 +389,22 @@ functions:
389389
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
390390
rm -rf ./node_modules/@aws-sdk/credential-providers
391391
run atlas tests:
392-
- command: shell.exec
393-
type: test
392+
- command: subprocess.exec
394393
params:
395-
silent: true
396394
working_dir: src
397-
script: |
398-
cat <<EOT > prepare_atlas_connectivity.sh
399-
export ATLAS_CONNECTIVITY='${ATLAS_CONNECTIVITY}'
400-
EOT
401-
- command: shell.exec
395+
binary: bash
396+
args:
397+
- '-c'
398+
- ${DRIVERS_TOOLS}/.evergreen/secrets_handling/setup-secrets.sh drivers/atlas_connect
399+
- command: subprocess.exec
402400
type: test
403401
params:
404402
working_dir: src
405-
script: |
406-
# Disable xtrace (just in case it was accidentally set).
407-
set +x
408-
. ./prepare_atlas_connectivity.sh
409-
rm -f ./prepare_atlas_connectivity.sh
410-
411-
export PROJECT_DIRECTORY="$(pwd)"
412-
export NODE_LTS_VERSION='${NODE_LTS_VERSION}'
413-
414-
bash ${PROJECT_DIRECTORY}/.evergreen/run-atlas-tests.sh
403+
binary: bash
404+
env:
405+
NODE_LTS_VERSION: ${NODE_LTS_VERSION}
406+
args:
407+
- .evergreen/run-atlas-tests.sh
415408
run socks5 tests:
416409
- command: shell.exec
417410
type: test

.evergreen/run-atlas-tests.sh

+5-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22

33
set -o errexit # Exit the script with error if any of the commands fail
44

5-
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
5+
if test -f secrets-export.sh; then
6+
source secrets-export.sh
7+
fi
68

7-
set -o xtrace
9+
PROJECT_DIRECTORY=${PROJECT_DIRECTORY:-"."}
10+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
811

912
node -v
1013

.gitignore

+6
Original file line numberDiff line numberDiff line change
@@ -99,3 +99,9 @@ test/lambda/env.json
9999
!encryption/lib
100100
!encryption/test
101101
!encryption/test/types
102+
103+
# files generated by tooling in drivers-evergreen-tools
104+
secrets-export.sh
105+
mo-expansion.sh
106+
mo-expansion.yml
107+
expansions.sh

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@
133133
"check:test": "mocha --config test/mocha_mongodb.json test/integration",
134134
"check:unit": "mocha test/unit",
135135
"check:ts": "node ./node_modules/typescript/bin/tsc -v && node ./node_modules/typescript/bin/tsc --noEmit",
136-
"check:atlas": "mocha --config test/manual/mocharc.json test/manual/atlas_connectivity.test.js",
136+
"check:atlas": "mocha --config test/manual/mocharc.json test/manual/atlas_connectivity.test.ts",
137137
"check:adl": "mocha --config test/mocha_mongodb.json test/manual/atlas-data-lake-testing",
138138
"check:aws": "nyc mocha --config test/mocha_mongodb.json test/integration/auth/mongodb_aws.test.ts",
139139
"check:oidc": "mocha --config test/mocha_mongodb.json test/manual/mongodb_oidc.prose.test.ts",

test/manual/atlas_connectivity.test.js

-50
This file was deleted.
+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import { LEGACY_HELLO_COMMAND, MongoClient } from '../mongodb';
2+
3+
/**
4+
* ATLAS_CONNECTIVITY env variable is JSON
5+
* Here's some typescript describing the shape:
6+
*
7+
* ```typescript
8+
* interface AtlasConnectivity {
9+
* [atlasDeployment: string]: [normalUri: string, srvUri: string]
10+
* }
11+
* ```
12+
*
13+
* It should be an object with descriptive strings about the deployment type and version (i.e. sharded_cluster_3_4)
14+
* that map to a two string tuple that are the normal URI and SRV URI, order doesn't matter, but it should be that order.
15+
*/
16+
17+
describe('Atlas Connectivity', function () {
18+
let client: MongoClient;
19+
20+
afterEach(async function () {
21+
await client?.close();
22+
});
23+
24+
const environments = [
25+
'ATLAS_SERVERLESS',
26+
'ATLAS_SRV_SERVERLESS',
27+
'ATLAS_FREE',
28+
'ATLAS_SRV_FREE',
29+
'ATLAS_REPL',
30+
'ATLAS_SRV_REPL',
31+
'ATLAS_SHRD',
32+
'ATLAS_SRV_SHRD',
33+
'ATLAS_TLS11',
34+
'ATLAS_SRV_TLS11',
35+
'ATLAS_TLS12',
36+
'ATLAS_SRV_TLS12'
37+
];
38+
39+
for (const environment of environments) {
40+
it(`${environment} connects successfully`, async function () {
41+
this.timeout(40000);
42+
43+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
44+
client = new MongoClient(process.env[environment]!);
45+
46+
await client.connect();
47+
await client.db('admin').command({ [LEGACY_HELLO_COMMAND]: 1 });
48+
await client.db('test').collection('test').findOne({});
49+
});
50+
}
51+
});

0 commit comments

Comments
 (0)