@@ -3,16 +3,22 @@ import chai, { expect } from 'chai';
3
3
import path from 'path' ;
4
4
import sinonChai from 'sinon-chai' ;
5
5
import sinon from 'ts-sinon' ;
6
- import mapCliToDriver , { applyTlsCertificateSelector } from './arg-mapper' ;
6
+ import mapCliToDriver , { getTlsCertificateSelector } from './arg-mapper' ;
7
7
chai . use ( sinonChai ) ;
8
8
9
+ const packageJSON = require ( '../package.json' ) ;
10
+
9
11
describe ( 'arg-mapper.mapCliToDriver' , ( ) => {
10
12
context ( 'when cli args have authenticationDatabase' , ( ) => {
11
13
const cliOptions : CliOptions = { authenticationDatabase : 'authDb' } ;
12
14
13
15
it ( 'maps to authSource' , ( ) => {
14
16
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
15
- authSource : 'authDb'
17
+ authSource : 'authDb' ,
18
+ driverInfo : {
19
+ name : 'mongosh' ,
20
+ version : packageJSON . version
21
+ }
16
22
} ) ;
17
23
} ) ;
18
24
} ) ;
@@ -22,7 +28,11 @@ describe('arg-mapper.mapCliToDriver', () => {
22
28
23
29
it ( 'maps to authMechanism' , ( ) => {
24
30
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
25
- authMechanism : 'SCRAM-SHA-1'
31
+ authMechanism : 'SCRAM-SHA-1' ,
32
+ driverInfo : {
33
+ name : 'mongosh' ,
34
+ version : packageJSON . version
35
+ }
26
36
} ) ;
27
37
} ) ;
28
38
} ) ;
@@ -32,7 +42,11 @@ describe('arg-mapper.mapCliToDriver', () => {
32
42
33
43
it ( 'maps to loggerLevel' , ( ) => {
34
44
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
35
- loggerLevel : 'error'
45
+ loggerLevel : 'error' ,
46
+ driverInfo : {
47
+ name : 'mongosh' ,
48
+ version : packageJSON . version
49
+ }
36
50
} ) ;
37
51
} ) ;
38
52
} ) ;
@@ -42,7 +56,11 @@ describe('arg-mapper.mapCliToDriver', () => {
42
56
43
57
it ( 'maps to loggerLevel' , ( ) => {
44
58
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
45
- loggerLevel : 'debug'
59
+ loggerLevel : 'debug' ,
60
+ driverInfo : {
61
+ name : 'mongosh' ,
62
+ version : packageJSON . version
63
+ }
46
64
} ) ;
47
65
} ) ;
48
66
} ) ;
@@ -54,6 +72,10 @@ describe('arg-mapper.mapCliToDriver', () => {
54
72
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
55
73
auth : {
56
74
username : 'richard'
75
+ } ,
76
+ driverInfo : {
77
+ name : 'mongosh' ,
78
+ version : packageJSON . version
57
79
}
58
80
} ) ;
59
81
} ) ;
@@ -66,6 +88,10 @@ describe('arg-mapper.mapCliToDriver', () => {
66
88
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
67
89
auth : {
68
90
password : 'aphextwin'
91
+ } ,
92
+ driverInfo : {
93
+ name : 'mongosh' ,
94
+ version : packageJSON . version
69
95
}
70
96
} ) ;
71
97
} ) ;
@@ -79,6 +105,10 @@ describe('arg-mapper.mapCliToDriver', () => {
79
105
auth : {
80
106
username : 'richard' ,
81
107
password : 'aphextwin'
108
+ } ,
109
+ driverInfo : {
110
+ name : 'mongosh' ,
111
+ version : packageJSON . version
82
112
}
83
113
} ) ;
84
114
} ) ;
@@ -89,7 +119,11 @@ describe('arg-mapper.mapCliToDriver', () => {
89
119
90
120
it ( 'maps the same argument' , ( ) => {
91
121
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
92
- retryWrites : true
122
+ retryWrites : true ,
123
+ driverInfo : {
124
+ name : 'mongosh' ,
125
+ version : packageJSON . version
126
+ }
93
127
} ) ;
94
128
} ) ;
95
129
} ) ;
@@ -99,7 +133,11 @@ describe('arg-mapper.mapCliToDriver', () => {
99
133
100
134
it ( 'maps the same argument' , ( ) => {
101
135
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
102
- tls : true
136
+ tls : true ,
137
+ driverInfo : {
138
+ name : 'mongosh' ,
139
+ version : packageJSON . version
140
+ }
103
141
} ) ;
104
142
} ) ;
105
143
} ) ;
@@ -109,7 +147,11 @@ describe('arg-mapper.mapCliToDriver', () => {
109
147
110
148
it ( 'maps the same argument' , ( ) => {
111
149
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
112
- tlsAllowInvalidCertificates : true
150
+ tlsAllowInvalidCertificates : true ,
151
+ driverInfo : {
152
+ name : 'mongosh' ,
153
+ version : packageJSON . version
154
+ }
113
155
} ) ;
114
156
} ) ;
115
157
} ) ;
@@ -119,7 +161,11 @@ describe('arg-mapper.mapCliToDriver', () => {
119
161
120
162
it ( 'maps the same argument' , ( ) => {
121
163
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
122
- tlsAllowInvalidHostnames : true
164
+ tlsAllowInvalidHostnames : true ,
165
+ driverInfo : {
166
+ name : 'mongosh' ,
167
+ version : packageJSON . version
168
+ }
123
169
} ) ;
124
170
} ) ;
125
171
} ) ;
@@ -129,7 +175,11 @@ describe('arg-mapper.mapCliToDriver', () => {
129
175
130
176
it ( 'maps the same argument' , ( ) => {
131
177
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
132
- tlsCAFile : 'ca'
178
+ tlsCAFile : 'ca' ,
179
+ driverInfo : {
180
+ name : 'mongosh' ,
181
+ version : packageJSON . version
182
+ }
133
183
} ) ;
134
184
} ) ;
135
185
} ) ;
@@ -139,7 +189,11 @@ describe('arg-mapper.mapCliToDriver', () => {
139
189
140
190
it ( 'maps to sslCRL' , ( ) => {
141
191
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
142
- sslCRL : 'key'
192
+ sslCRL : 'key' ,
193
+ driverInfo : {
194
+ name : 'mongosh' ,
195
+ version : packageJSON . version
196
+ }
143
197
} ) ;
144
198
} ) ;
145
199
} ) ;
@@ -149,7 +203,11 @@ describe('arg-mapper.mapCliToDriver', () => {
149
203
150
204
it ( 'maps the same argument' , ( ) => {
151
205
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
152
- tlsCertificateKeyFile : 'key'
206
+ tlsCertificateKeyFile : 'key' ,
207
+ driverInfo : {
208
+ name : 'mongosh' ,
209
+ version : packageJSON . version
210
+ }
153
211
} ) ;
154
212
} ) ;
155
213
} ) ;
@@ -159,7 +217,11 @@ describe('arg-mapper.mapCliToDriver', () => {
159
217
160
218
it ( 'maps the same argument' , ( ) => {
161
219
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
162
- tlsCertificateKeyFilePassword : 'pw'
220
+ tlsCertificateKeyFilePassword : 'pw' ,
221
+ driverInfo : {
222
+ name : 'mongosh' ,
223
+ version : packageJSON . version
224
+ }
163
225
} ) ;
164
226
} ) ;
165
227
} ) ;
@@ -175,6 +237,10 @@ describe('arg-mapper.mapCliToDriver', () => {
175
237
accessKeyId : 'awskey'
176
238
}
177
239
}
240
+ } ,
241
+ driverInfo : {
242
+ name : 'mongosh' ,
243
+ version : packageJSON . version
178
244
}
179
245
} ) ;
180
246
} ) ;
@@ -191,6 +257,10 @@ describe('arg-mapper.mapCliToDriver', () => {
191
257
secretAccessKey : 'secretkey'
192
258
}
193
259
}
260
+ } ,
261
+ driverInfo : {
262
+ name : 'mongosh' ,
263
+ version : packageJSON . version
194
264
}
195
265
} ) ;
196
266
} ) ;
@@ -203,6 +273,10 @@ describe('arg-mapper.mapCliToDriver', () => {
203
273
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
204
274
authMechanismProperties : {
205
275
AWS_SESSION_TOKEN : 'token'
276
+ } ,
277
+ driverInfo : {
278
+ name : 'mongosh' ,
279
+ version : packageJSON . version
206
280
}
207
281
} ) ;
208
282
} ) ;
@@ -215,6 +289,10 @@ describe('arg-mapper.mapCliToDriver', () => {
215
289
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
216
290
authMechanismProperties : {
217
291
SERVICE_NAME : 'alternate'
292
+ } ,
293
+ driverInfo : {
294
+ name : 'mongosh' ,
295
+ version : packageJSON . version
218
296
}
219
297
} ) ;
220
298
} ) ;
@@ -227,6 +305,10 @@ describe('arg-mapper.mapCliToDriver', () => {
227
305
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
228
306
authMechanismProperties : {
229
307
SERVICE_REALM : 'REALM.COM'
308
+ } ,
309
+ driverInfo : {
310
+ name : 'mongosh' ,
311
+ version : packageJSON . version
230
312
}
231
313
} ) ;
232
314
} ) ;
@@ -237,7 +319,12 @@ describe('arg-mapper.mapCliToDriver', () => {
237
319
const cliOptions : CliOptions = { sspiHostnameCanonicalization : 'none' } ;
238
320
239
321
it ( 'is not mapped to authMechanismProperties' , ( ) => {
240
- expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( { } ) ;
322
+ expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
323
+ driverInfo : {
324
+ name : 'mongosh' ,
325
+ version : packageJSON . version
326
+ }
327
+ } ) ;
241
328
} ) ;
242
329
} ) ;
243
330
@@ -248,6 +335,10 @@ describe('arg-mapper.mapCliToDriver', () => {
248
335
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
249
336
authMechanismProperties : {
250
337
gssapiCanonicalizeHostName : 'true'
338
+ } ,
339
+ driverInfo : {
340
+ name : 'mongosh' ,
341
+ version : packageJSON . version
251
342
}
252
343
} ) ;
253
344
} ) ;
@@ -275,6 +366,10 @@ describe('arg-mapper.mapCliToDriver', () => {
275
366
expect ( mapCliToDriver ( cliOptions ) ) . to . deep . equal ( {
276
367
autoEncryption : {
277
368
keyVaultNamespace : 'db.datakeys'
369
+ } ,
370
+ driverInfo : {
371
+ name : 'mongosh' ,
372
+ version : packageJSON . version
278
373
}
279
374
} ) ;
280
375
} ) ;
@@ -297,6 +392,10 @@ describe('arg-mapper.mapCliToDriver', () => {
297
392
secretAccessKey : 'secretkey'
298
393
}
299
394
}
395
+ } ,
396
+ driverInfo : {
397
+ name : 'mongosh' ,
398
+ version : packageJSON . version
300
399
}
301
400
} ) ;
302
401
} ) ;
@@ -315,6 +414,10 @@ describe('arg-mapper.mapCliToDriver', () => {
315
414
strict : true ,
316
415
deprecationErrors : true ,
317
416
version : '1'
417
+ } ,
418
+ driverInfo : {
419
+ name : 'mongosh' ,
420
+ version : packageJSON . version
318
421
}
319
422
} ) ;
320
423
} ) ;
@@ -336,16 +439,13 @@ describe('arg-mapper.applyTlsCertificateSelector', () => {
336
439
} ) ;
337
440
338
441
it ( 'leaves node options unchanged when no selector is given' , ( ) => {
339
- const options = { } ;
340
- applyTlsCertificateSelector ( undefined , options ) ;
341
- expect ( options ) . to . deep . equal ( { } ) ;
442
+ const applyTlsCertificateSelector = getTlsCertificateSelector ( undefined ) ;
443
+ expect ( applyTlsCertificateSelector ) . to . not . exist ;
342
444
} ) ;
343
445
344
446
it ( 'throws when the selector has an odd format' , ( ) => {
345
- const options = { } ;
346
- expect ( ( ) => applyTlsCertificateSelector ( 'foo=bar' , options ) )
447
+ expect ( ( ) => getTlsCertificateSelector ( 'foo=bar' ) )
347
448
. to . throw ( / t l s C e r t i f i c a t e S e l e c t o r n e e d s t o i n c l u d e s u b j e c t o r t h u m b p r i n t / ) ;
348
- expect ( options ) . to . deep . equal ( { } ) ;
349
449
} ) ;
350
450
351
451
it ( 'returns passphrase and pfx as given by the (fake) OS' , ( ) => {
@@ -354,9 +454,8 @@ describe('arg-mapper.applyTlsCertificateSelector', () => {
354
454
exportCertificateAndPrivateKey . returns ( {
355
455
passphrase, pfx
356
456
} ) ;
357
- const options = { } ;
358
- applyTlsCertificateSelector ( 'subject=Foo Bar' , options ) ;
359
- expect ( options ) . to . deep . equal ( {
457
+ const applyTlsCertificateSelector = getTlsCertificateSelector ( 'subject=Foo Bar' ) ;
458
+ expect ( applyTlsCertificateSelector ) . to . deep . equal ( {
360
459
passphrase, pfx
361
460
} ) ;
362
461
} ) ;
@@ -367,26 +466,23 @@ describe('arg-mapper.applyTlsCertificateSelector', () => {
367
466
if ( process . platform === 'win32' || process . platform === 'darwin' ) {
368
467
return this . skip ( ) ;
369
468
}
370
- const options = { } ;
371
- expect ( ( ) => applyTlsCertificateSelector ( 'subject=Foo Bar' , options ) )
469
+ expect ( ( ) => getTlsCertificateSelector ( 'subject=Foo Bar' ) )
372
470
. to . throw ( / t l s C e r t i f i c a t e S e l e c t o r i s n o t s u p p o r t e d o n t h i s p l a t f o r m / ) ;
373
471
} ) ;
374
472
375
473
it ( 'tries to search the OS CA store on win32' , function ( ) {
376
474
if ( process . platform !== 'win32' ) {
377
475
return this . skip ( ) ;
378
476
}
379
- const options = { } ;
380
- expect ( ( ) => applyTlsCertificateSelector ( 'subject=Foo Bar' , options ) )
477
+ expect ( ( ) => getTlsCertificateSelector ( 'subject=Foo Bar' ) )
381
478
. to . throw ( / C o u l d n o t r e s o l v e c e r t i f i c a t e s p e c i f i c a t i o n / ) ;
382
479
} ) ;
383
480
384
481
it ( 'tries to search the OS keychain on darwin' , function ( ) {
385
482
if ( process . platform !== 'darwin' ) {
386
483
return this . skip ( ) ;
387
484
}
388
- const options = { } ;
389
- expect ( ( ) => applyTlsCertificateSelector ( 'subject=Foo Bar' , options ) )
485
+ expect ( ( ) => getTlsCertificateSelector ( 'subject=Foo Bar' ) )
390
486
. to . throw ( / C o u l d n o t f i n d a m a t c h i n g c e r t i f i c a t e / ) ;
391
487
} ) ;
392
488
} ) ;
0 commit comments