Skip to content

Commit aa652ae

Browse files
authored
test(NODE-4271): sync fle2 api spec tests (#3273)
1 parent 098eb6e commit aa652ae

29 files changed

+5543
-44
lines changed

src/encrypter.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,6 @@ export class Encrypter {
8383

8484
clonedOptions.minPoolSize = 0;
8585

86-
clonedOptions.promoteValues = false;
87-
clonedOptions.promoteLongs = false;
88-
8986
internalClient = new MongoClient(uri, clonedOptions);
9087
this[kInternalClient] = internalClient;
9188

test/integration/client-side-encryption/client_side_encryption.spec.test.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,19 @@ const skippedAuthTests = [
5555
];
5656

5757
// TODO(NODE-4006): Investigate csfle test "operation fails with maxWireVersion < 8"
58-
const skippedMaxWireVersionTest = 'operation fails with maxWireVersion < 8';
58+
// TODO(NODE-4324): Int32 and Long not allowed as batchSize option to cursor.
59+
const skippedNoAuthTests = ['getMore with encryption', 'operation fails with maxWireVersion < 8'];
5960

6061
const SKIPPED_TESTS = new Set([
61-
...(isAuthEnabled
62-
? skippedAuthTests.concat(skippedMaxWireVersionTest)
63-
: [skippedMaxWireVersionTest])
62+
...(isAuthEnabled ? skippedAuthTests.concat(skippedNoAuthTests) : skippedNoAuthTests)
6463
]);
6564

6665
describe('Client Side Encryption', function () {
6766
const testContext = new TestRunnerContext();
6867
testContext.requiresCSFLE = true;
6968
const testSuites = gatherTestSuites(
70-
path.join(__dirname, '../../spec/client-side-encryption/tests')
69+
path.join(__dirname, '../../spec/client-side-encryption/tests'),
70+
testContext
7171
);
7272
after(() => testContext.teardown());
7373
before(function () {

test/spec/client-side-encryption/tests/README.rst

Lines changed: 1002 additions & 30 deletions
Large diffs are not rendered by default.
Lines changed: 289 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,289 @@
1+
{
2+
"runOn": [
3+
{
4+
"minServerVersion": "6.0.0",
5+
"topology": [
6+
"replicaset",
7+
"sharded"
8+
]
9+
}
10+
],
11+
"database_name": "default",
12+
"collection_name": "default",
13+
"data": [],
14+
"encrypted_fields": {
15+
"escCollection": "enxcol_.default.esc",
16+
"eccCollection": "enxcol_.default.ecc",
17+
"ecocCollection": "enxcol_.default.ecoc",
18+
"fields": [
19+
{
20+
"keyId": {
21+
"$binary": {
22+
"base64": "EjRWeBI0mHYSNBI0VniQEg==",
23+
"subType": "04"
24+
}
25+
},
26+
"path": "encryptedIndexed",
27+
"bsonType": "string",
28+
"queries": {
29+
"queryType": "equality",
30+
"contention": {
31+
"$numberLong": "0"
32+
}
33+
}
34+
},
35+
{
36+
"keyId": {
37+
"$binary": {
38+
"base64": "q83vqxI0mHYSNBI0VniQEg==",
39+
"subType": "04"
40+
}
41+
},
42+
"path": "encryptedUnindexed",
43+
"bsonType": "string"
44+
}
45+
]
46+
},
47+
"key_vault_data": [
48+
{
49+
"_id": {
50+
"$binary": {
51+
"base64": "EjRWeBI0mHYSNBI0VniQEg==",
52+
"subType": "04"
53+
}
54+
},
55+
"keyMaterial": {
56+
"$binary": {
57+
"base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
58+
"subType": "00"
59+
}
60+
},
61+
"creationDate": {
62+
"$date": {
63+
"$numberLong": "1648914851981"
64+
}
65+
},
66+
"updateDate": {
67+
"$date": {
68+
"$numberLong": "1648914851981"
69+
}
70+
},
71+
"status": {
72+
"$numberInt": "0"
73+
},
74+
"masterKey": {
75+
"provider": "local"
76+
}
77+
},
78+
{
79+
"_id": {
80+
"$binary": {
81+
"base64": "q83vqxI0mHYSNBI0VniQEg==",
82+
"subType": "04"
83+
}
84+
},
85+
"keyMaterial": {
86+
"$binary": {
87+
"base64": "HBk9BWihXExNDvTp1lUxOuxuZK2Pe2ZdVdlsxPEBkiO1bS4mG5NNDsQ7zVxJAH8BtdOYp72Ku4Y3nwc0BUpIKsvAKX4eYXtlhv5zUQxWdeNFhg9qK7qb8nqhnnLeT0f25jFSqzWJoT379hfwDeu0bebJHr35QrJ8myZdPMTEDYF08QYQ48ShRBli0S+QzBHHAQiM2iJNr4svg2WR8JSeWQ==",
88+
"subType": "00"
89+
}
90+
},
91+
"creationDate": {
92+
"$date": {
93+
"$numberLong": "1648914851981"
94+
}
95+
},
96+
"updateDate": {
97+
"$date": {
98+
"$numberLong": "1648914851981"
99+
}
100+
},
101+
"status": {
102+
"$numberInt": "0"
103+
},
104+
"masterKey": {
105+
"provider": "local"
106+
}
107+
}
108+
],
109+
"tests": [
110+
{
111+
"description": "BypassQueryAnalysis decrypts",
112+
"clientOptions": {
113+
"autoEncryptOpts": {
114+
"kmsProviders": {
115+
"local": {
116+
"key": {
117+
"$binary": {
118+
"base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
119+
"subType": "00"
120+
}
121+
}
122+
}
123+
},
124+
"bypassQueryAnalysis": true
125+
}
126+
},
127+
"operations": [
128+
{
129+
"name": "insertOne",
130+
"arguments": {
131+
"document": {
132+
"_id": 1,
133+
"encryptedIndexed": {
134+
"$binary": {
135+
"base64": "BHEBAAAFZAAgAAAAAHb62aV7+mqmaGcotPLdG3KP7S8diFwWMLM/5rYtqLrEBXMAIAAAAAAVJ6OWHRv3OtCozHpt3ZzfBhaxZirLv3B+G8PuaaO4EgVjACAAAAAAsZXWOWA+UiCBbrJNB6bHflB/cn7pWSvwWN2jw4FPeIUFcABQAAAAAMdD1nV2nqeI1eXEQNskDflCy8I7/HvvqDKJ6XxjhrPQWdLqjz+8GosGUsB7A8ee/uG9/guENuL25XD+Fxxkv1LLXtavHOlLF7iW0u9yabqqBXUAEAAAAAQSNFZ4EjSYdhI0EjRWeJASEHQAAgAAAAV2AE0AAAAAq83vqxI0mHYSNBI0VniQEkzZZBBDgeZh+h+gXEmOrSFtVvkUcnHWj/rfPW7iJ0G3UJ8zpuBmUM/VjOMJCY4+eDqdTiPIwX+/vNXegc8FZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsAA==",
136+
"subType": "06"
137+
}
138+
}
139+
}
140+
}
141+
},
142+
{
143+
"name": "find",
144+
"arguments": {
145+
"filter": {
146+
"_id": 1
147+
}
148+
},
149+
"result": [
150+
{
151+
"_id": 1,
152+
"encryptedIndexed": "value123"
153+
}
154+
]
155+
}
156+
],
157+
"expectations": [
158+
{
159+
"command_started_event": {
160+
"command": {
161+
"listCollections": 1,
162+
"filter": {
163+
"name": "default"
164+
}
165+
},
166+
"command_name": "listCollections"
167+
}
168+
},
169+
{
170+
"command_started_event": {
171+
"command": {
172+
"insert": "default",
173+
"documents": [
174+
{
175+
"_id": 1,
176+
"encryptedIndexed": {
177+
"$binary": {
178+
"base64": "BHEBAAAFZAAgAAAAAHb62aV7+mqmaGcotPLdG3KP7S8diFwWMLM/5rYtqLrEBXMAIAAAAAAVJ6OWHRv3OtCozHpt3ZzfBhaxZirLv3B+G8PuaaO4EgVjACAAAAAAsZXWOWA+UiCBbrJNB6bHflB/cn7pWSvwWN2jw4FPeIUFcABQAAAAAMdD1nV2nqeI1eXEQNskDflCy8I7/HvvqDKJ6XxjhrPQWdLqjz+8GosGUsB7A8ee/uG9/guENuL25XD+Fxxkv1LLXtavHOlLF7iW0u9yabqqBXUAEAAAAAQSNFZ4EjSYdhI0EjRWeJASEHQAAgAAAAV2AE0AAAAAq83vqxI0mHYSNBI0VniQEkzZZBBDgeZh+h+gXEmOrSFtVvkUcnHWj/rfPW7iJ0G3UJ8zpuBmUM/VjOMJCY4+eDqdTiPIwX+/vNXegc8FZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsAA==",
179+
"subType": "06"
180+
}
181+
}
182+
}
183+
],
184+
"ordered": true
185+
},
186+
"command_name": "insert"
187+
}
188+
},
189+
{
190+
"command_started_event": {
191+
"command": {
192+
"find": "default",
193+
"filter": {
194+
"_id": 1
195+
}
196+
},
197+
"command_name": "find"
198+
}
199+
},
200+
{
201+
"command_started_event": {
202+
"command": {
203+
"find": "datakeys",
204+
"filter": {
205+
"$or": [
206+
{
207+
"_id": {
208+
"$in": [
209+
{
210+
"$binary": {
211+
"base64": "EjRWeBI0mHYSNBI0VniQEg==",
212+
"subType": "04"
213+
}
214+
}
215+
]
216+
}
217+
},
218+
{
219+
"keyAltNames": {
220+
"$in": []
221+
}
222+
}
223+
]
224+
},
225+
"$db": "keyvault",
226+
"readConcern": {
227+
"level": "majority"
228+
}
229+
},
230+
"command_name": "find"
231+
}
232+
},
233+
{
234+
"command_started_event": {
235+
"command": {
236+
"find": "datakeys",
237+
"filter": {
238+
"$or": [
239+
{
240+
"_id": {
241+
"$in": [
242+
{
243+
"$binary": {
244+
"base64": "q83vqxI0mHYSNBI0VniQEg==",
245+
"subType": "04"
246+
}
247+
}
248+
]
249+
}
250+
},
251+
{
252+
"keyAltNames": {
253+
"$in": []
254+
}
255+
}
256+
]
257+
},
258+
"$db": "keyvault",
259+
"readConcern": {
260+
"level": "majority"
261+
}
262+
},
263+
"command_name": "find"
264+
}
265+
}
266+
],
267+
"outcome": {
268+
"collection": {
269+
"data": [
270+
{
271+
"_id": 1,
272+
"encryptedIndexed": {
273+
"$$type": "binData"
274+
},
275+
"__safeContent__": [
276+
{
277+
"$binary": {
278+
"base64": "ThpoKfQ8AkOzkFfNC1+9PF0pY2nIzfXvRdxQgjkNbBw=",
279+
"subType": "00"
280+
}
281+
}
282+
]
283+
}
284+
]
285+
}
286+
}
287+
}
288+
]
289+
}

0 commit comments

Comments
 (0)