Skip to content

Commit 3a7eeb1

Browse files
committed
fix tests
1 parent 1b2af7d commit 3a7eeb1

File tree

6 files changed

+91
-108
lines changed

6 files changed

+91
-108
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) {
@@ -148,56 +148,54 @@ function executeServerSelectionTest(testDefinition, testDone) {
148148
}
149149

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

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

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

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

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

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

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

test/unit/error.test.ts

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

368-
topology.selectServer('primary', {}, (err, server) => {
369-
expect(err).to.not.exist;
370-
368+
topology.selectServer('primary', {}).then(server => {
371369
server
372370
.command(ns('db1'), Object.assign({}, RAW_USER_WRITE_CONCERN_CMD), {})
373371
.then(expect.fail, err => {
@@ -386,7 +384,7 @@ describe('MongoErrors', () => {
386384
cleanup(_err);
387385
}
388386
});
389-
});
387+
}, expect.fail);
390388
});
391389
});
392390

@@ -408,9 +406,7 @@ describe('MongoErrors', () => {
408406
return cleanup(err);
409407
}
410408

411-
topology.selectServer('primary', {}, (err, server) => {
412-
expect(err).to.not.exist;
413-
409+
topology.selectServer('primary', {}).then(server => {
414410
server
415411
.command(ns('db1'), Object.assign({}, RAW_USER_WRITE_CONCERN_CMD), {})
416412
.then(expect.fail, err => {
@@ -427,7 +423,7 @@ describe('MongoErrors', () => {
427423
cleanup(_err);
428424
}
429425
});
430-
});
426+
}, expect.fail);
431427
});
432428
});
433429
});

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)