@@ -5,12 +5,16 @@ const { expect } = require('chai');
5
5
const EventEmitter = require ( 'events' ) ;
6
6
const { setTimeout } = require ( 'timers' ) ;
7
7
8
- const { connect } = require ( '../../../src/cmap/connect' ) ;
8
+ const {
9
+ connect,
10
+ prepareHandshakeDocument : prepareHandshakeDocumentCb
11
+ } = require ( '../../../src/cmap/connect' ) ;
9
12
const { MongoCredentials } = require ( '../../../src/cmap/auth/mongo_credentials' ) ;
10
13
const { genClusterTime } = require ( '../../tools/common' ) ;
11
14
const { MongoNetworkError } = require ( '../../../src/error' ) ;
12
15
const { HostAddress, isHello } = require ( '../../../src/utils' ) ;
13
16
const { LEGACY_HELLO_COMMAND } = require ( '../../../src/constants' ) ;
17
+ const { promisify } = require ( 'util' ) ;
14
18
15
19
describe ( 'Connect Tests' , function ( ) {
16
20
const test = { } ;
@@ -112,4 +116,50 @@ describe('Connect Tests', function () {
112
116
done ( ) ;
113
117
} ) ;
114
118
} ) . skipReason = 'TODO(NODE-2941): stop using 240.0.0.1 in tests' ;
119
+
120
+ context ( 'prepareHandshakeDocument' , ( ) => {
121
+ const prepareHandshakeDocument = promisify ( prepareHandshakeDocumentCb ) ;
122
+
123
+ context ( 'loadBalanced option' , ( ) => {
124
+ context ( 'when loadBalanced is not set as an option' , ( ) => {
125
+ it ( 'does not set loadBalanced on the handshake document' , async ( ) => {
126
+ const options = { } ;
127
+ const authContext = {
128
+ connection : { } ,
129
+ options
130
+ } ;
131
+ const handshakeDocument = await prepareHandshakeDocument ( authContext ) ;
132
+ expect ( handshakeDocument ) . not . to . have . property ( 'loadBalanced' ) ;
133
+ } ) ;
134
+ } ) ;
135
+
136
+ context ( 'when loadBalanced is set to false' , ( ) => {
137
+ it ( 'does not set loadBalanced on the handshake document' , async ( ) => {
138
+ const options = {
139
+ loadBalanced : false
140
+ } ;
141
+ const authContext = {
142
+ connection : { } ,
143
+ options
144
+ } ;
145
+ const handshakeDocument = await prepareHandshakeDocument ( authContext ) ;
146
+ expect ( handshakeDocument ) . not . to . have . property ( 'loadBalanced' ) ;
147
+ } ) ;
148
+ } ) ;
149
+
150
+ context ( 'when loadBalanced is set to true' , ( ) => {
151
+ it ( 'does set loadBalanced on the handshake document' , async ( ) => {
152
+ const options = {
153
+ loadBalanced : true
154
+ } ;
155
+ const authContext = {
156
+ connection : { } ,
157
+ options
158
+ } ;
159
+ const handshakeDocument = await prepareHandshakeDocument ( authContext ) ;
160
+ expect ( handshakeDocument ) . to . have . property ( 'loadBalanced' , true ) ;
161
+ } ) ;
162
+ } ) ;
163
+ } ) ;
164
+ } ) ;
115
165
} ) ;
0 commit comments