Skip to content

Commit 65c9267

Browse files
chore: use new mongodb-client-encryption and update filter to support versions (#4132)
1 parent f790cc1 commit 65c9267

File tree

4 files changed

+30
-19
lines changed

4 files changed

+30
-19
lines changed

Diff for: global.d.ts

+8-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,14 @@ declare global {
88
mongodb?: string;
99
os?: NodeJS.Platform | `!${NodeJS.Platform}`;
1010
apiVersion?: '1' | boolean;
11-
clientSideEncryption?: boolean;
11+
12+
/**
13+
* require FLE to be set up to run the test
14+
*
15+
* A semver range may be provided as well to enforce a particular version range
16+
* of mongodb-client-encryption. Ex: `clientSideEncryption: '>=6.0.1'`
17+
*/
18+
clientSideEncryption?: string | true;
1219
serverless?: 'forbid' | 'allow' | 'require';
1320
auth?: 'enabled' | 'disabled';
1421
idmsMockServer?: true;

Diff for: package-lock.json

+14-14
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@
9898
"js-yaml": "^4.1.0",
9999
"mocha": "^10.4.0",
100100
"mocha-sinon": "^2.1.2",
101-
"mongodb-client-encryption": "^6.0.0",
101+
"mongodb-client-encryption": "^6.0.1",
102102
"mongodb-legacy": "^6.0.1",
103103
"nyc": "^15.1.0",
104104
"prettier": "^2.8.8",

Diff for: test/tools/runner/filters/client_encryption_filter.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { readFile } from 'fs/promises';
22
import { dirname, resolve } from 'path';
33
import * as process from 'process';
4+
import { satisfies } from 'semver';
45

56
import { type MongoClient } from '../../../mongodb';
67
import { Filter } from './filter';
@@ -59,15 +60,18 @@ export class ClientSideEncryptionFilter extends Filter {
5960
return true;
6061
}
6162

62-
if (clientSideEncryption !== true) {
63-
throw new Error('ClientSideEncryptionFilter can only be set to true');
63+
if (clientSideEncryption === false) {
64+
throw new Error(
65+
'ClientSideEncryptionFilter can only be set to true or a semver version range.'
66+
);
6467
}
6568

6669
// TODO(NODE-3401): unskip csfle tests on windows
6770
if (process.env.TEST_CSFLE && !this.enabled && process.platform !== 'win32') {
6871
throw new Error('Expected CSFLE to be enabled in the CI');
6972
}
73+
const validRange = typeof clientSideEncryption === 'string' ? clientSideEncryption : '>=0.0.0';
7074

71-
return this.enabled;
75+
return this.enabled && satisfies(ClientSideEncryptionFilter.version, validRange);
7276
}
7377
}

0 commit comments

Comments
 (0)