Skip to content

Commit 9576632

Browse files
committed
fix tests
1 parent 9ca16ec commit 9576632

File tree

6 files changed

+85
-104
lines changed

6 files changed

+85
-104
lines changed

test/unit/assorted/server_discovery_and_monitoring.spec.test.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -207,12 +207,11 @@ describe('Server Discovery and Monitoring (spec)', function () {
207207
topologySelectServers = sinon
208208
.stub(Topology.prototype, 'selectServer')
209209

210-
.callsFake(function (selector, options, callback) {
210+
.callsFake(function (selector, options) {
211211
topologySelectServers.restore();
212212

213213
const fakeServer = { s: { state: 'connected' }, removeListener: () => true };
214-
// @ts-expect-error: stub doesn't need to be a full server
215-
callback(undefined, fakeServer);
214+
return Promise.resolve(fakeServer);
216215
});
217216
});
218217

test/unit/assorted/server_selection_latency_window_utils.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,7 @@ export async function runServerSelectionLatencyWindowTest(test: ServerSelectionL
139139
const selectedServers: Server[] = [];
140140

141141
for (let i = 0; i < test.iterations; ++i) {
142-
const server: Server = await promisify(topology.selectServer.bind(topology))(
143-
ReadPreference.NEAREST,
144-
{}
145-
);
142+
const server: Server = await topology.selectServer.bind(topology)(ReadPreference.NEAREST, {});
146143
selectedServers.push(server);
147144
}
148145

test/unit/assorted/server_selection_spec_helper.js

Lines changed: 40 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,11 @@ function executeServerSelectionTest(testDefinition, testDone) {
102102
// call to `selectServers` call a fake, and then immediately restore the original behavior.
103103
let topologySelectServers = sinon
104104
.stub(Topology.prototype, 'selectServer')
105-
.callsFake(function (selector, options, callback) {
105+
.callsFake(function (selector, options) {
106106
topologySelectServers.restore();
107107

108108
const fakeServer = { s: { state: 'connected' }, removeListener: () => {} };
109-
callback(undefined, fakeServer);
109+
return Promise.resolve(fakeServer);
110110
});
111111

112112
function done(err) {
@@ -149,56 +149,54 @@ function executeServerSelectionTest(testDefinition, testDone) {
149149
}
150150

151151
// default to serverSelectionTimeoutMS of `100` for unit tests
152-
topology.selectServer(selector, { serverSelectionTimeoutMS: 50 }, (err, server) => {
153-
// are we expecting an error?
154-
if (testDefinition.error) {
155-
if (!err) {
156-
return done(new Error('Expected an error, but found none!'));
152+
topology.selectServer(selector, { serverSelectionTimeoutMS: 50 }).then(
153+
server => {
154+
if (testDefinition.error) return done(new Error('Expected an error, but found none!'));
155+
if (expectedServers.length === 0 && server !== null) {
156+
return done(new Error('Found server, but expected none!'));
157157
}
158158

159-
return done();
160-
}
161-
162-
if (err) {
163-
// this is another expected error case
164-
if (expectedServers.length === 0 && err instanceof MongoServerSelectionError) return done();
165-
return done(err);
166-
}
159+
const selectedServerDescription = server.description;
167160

168-
if (expectedServers.length === 0 && server !== null) {
169-
return done(new Error('Found server, but expected none!'));
170-
}
161+
try {
162+
const expectedServerArray = expectedServers.filter(
163+
s => s.address === selectedServerDescription.address
164+
);
171165

172-
const selectedServerDescription = server.description;
166+
if (!expectedServerArray.length) {
167+
return done(new Error('No suitable servers found!'));
168+
}
173169

174-
try {
175-
const expectedServerArray = expectedServers.filter(
176-
s => s.address === selectedServerDescription.address
177-
);
170+
if (expectedServerArray.length > 1) {
171+
return done(new Error('This test does not support multiple expected servers'));
172+
}
178173

179-
if (!expectedServerArray.length) {
180-
return done(new Error('No suitable servers found!'));
174+
for (const [prop, value] of Object.entries(expectedServerArray[0])) {
175+
if (prop === 'hosts') {
176+
// we dynamically modify this prop during sever selection
177+
continue;
178+
}
179+
expect(selectedServerDescription[prop]).to.deep.equal(
180+
value,
181+
`Mismatched selected server "${prop}"`
182+
);
183+
}
184+
done();
185+
} catch (e) {
186+
done(e);
181187
}
182-
183-
if (expectedServerArray.length > 1) {
184-
return done(new Error('This test does not support multiple expected servers'));
188+
},
189+
err => {
190+
// are we expecting an error?
191+
if (testDefinition.error) {
192+
return done();
185193
}
186194

187-
for (const [prop, value] of Object.entries(expectedServerArray[0])) {
188-
if (prop === 'hosts') {
189-
// we dynamically modify this prop during sever selection
190-
continue;
191-
}
192-
expect(selectedServerDescription[prop]).to.deep.equal(
193-
value,
194-
`Mismatched selected server "${prop}"`
195-
);
196-
}
197-
done();
198-
} catch (e) {
199-
done(e);
195+
// this is another expected error case
196+
if (expectedServers.length === 0 && err instanceof MongoServerSelectionError) return done();
197+
return done(err);
200198
}
201-
});
199+
);
202200
});
203201
}
204202

test/unit/error.test.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -368,9 +368,7 @@ describe('MongoErrors', () => {
368368
return cleanup(err);
369369
}
370370

371-
topology.selectServer('primary', {}, (err, server) => {
372-
expect(err).to.not.exist;
373-
371+
topology.selectServer('primary', {}).then(server => {
374372
server
375373
.command(ns('db1'), Object.assign({}, RAW_USER_WRITE_CONCERN_CMD), {})
376374
.then(expect.fail, err => {
@@ -389,7 +387,7 @@ describe('MongoErrors', () => {
389387
cleanup(_err);
390388
}
391389
});
392-
});
390+
}, expect.fail);
393391
});
394392
});
395393

@@ -414,9 +412,7 @@ describe('MongoErrors', () => {
414412
return cleanup(err);
415413
}
416414

417-
topology.selectServer('primary', {}, (err, server) => {
418-
expect(err).to.not.exist;
419-
415+
topology.selectServer('primary', {}).then(server => {
420416
server
421417
.command(ns('db1'), Object.assign({}, RAW_USER_WRITE_CONCERN_CMD), {})
422418
.then(expect.fail, err => {
@@ -433,7 +429,7 @@ describe('MongoErrors', () => {
433429
cleanup(_err);
434430
}
435431
});
436-
});
432+
}, expect.fail);
437433
});
438434
});
439435
});

test/unit/sdam/server_selection.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -628,19 +628,19 @@ describe('server selection', async function () {
628628
context('when willLog returns false', function () {
629629
const original = Object.getPrototypeOf(ServerSelectionEvent);
630630
let serverSelectionEventStub;
631-
beforeEach(async () => {
631+
beforeEach(() => {
632632
sinon.stub(MongoLogger.prototype, 'willLog').callsFake((_v, _w) => false);
633633
serverSelectionEventStub = sinon.stub();
634634
Object.setPrototypeOf(ServerSelectionEvent, serverSelectionEventStub);
635635
});
636636

637-
afterEach(async () => {
637+
afterEach(() => {
638638
sinon.restore();
639639
Object.setPrototypeOf(ServerSelectionEvent, original);
640640
});
641641

642-
it('should not create server selection event instances', function () {
643-
topology?.selectServer(topologyDescription, { operationName: 'test' }, v => v);
642+
it('should not create server selection event instances', async function () {
643+
await topology?.selectServer(topologyDescription, { operationName: 'test' });
644644
expect(serverSelectionEventStub.getCall(0)).to.be.null;
645645
});
646646
});

0 commit comments

Comments
 (0)