Skip to content

Commit d0968d8

Browse files
committed
Merge branch 'beta'
2 parents 6e68ddf + 8a989a3 commit d0968d8

File tree

11 files changed

+40
-19
lines changed

11 files changed

+40
-19
lines changed

CHANGELOG.md

+8
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
## [10.0.1-beta.1](https://github.com/typegoose/mongodb-memory-server/compare/v10.0.0...v10.0.1-beta.1) (2024-08-03)
2+
3+
4+
### Fixes
5+
6+
* **getport:** check new port against cache ([b70d868](https://github.com/typegoose/mongodb-memory-server/commit/b70d868cf5b6766e751ef6fec53e8e4ccccd1de6)), closes [#883](https://github.com/typegoose/mongodb-memory-server/issues/883)
7+
* **getport:** update cache time when last used ([a332b49](https://github.com/typegoose/mongodb-memory-server/commit/a332b491b173d9d3b03578c9f6bcd46fecbaa6d7)), closes [#883](https://github.com/typegoose/mongodb-memory-server/issues/883)
8+
19
## [10.0.0](https://github.com/typegoose/mongodb-memory-server/compare/v9.4.1...v10.0.0) (2024-07-18)
210

311

packages/mongodb-memory-server-core/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mongodb-memory-server-core",
3-
"version": "10.0.0",
3+
"version": "10.0.1-beta.1",
44
"description": "MongoDB Server for testing (core package, without autodownload). The server will allow you to connect your favourite ODM or client library to the MongoDB Server and run parallel integration tests isolated from each other.",
55
"main": "lib/index",
66
"types": "lib/index.d.ts",

packages/mongodb-memory-server-core/src/__tests__/MongoMemoryReplSet.test.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -724,7 +724,7 @@ describe('MongoMemoryReplSet', () => {
724724
describe('server version specific', () => {
725725
// should use default options that are supported for 7.0 (like not using "ephemeralForTest" by default)
726726
it('should allow mongodb by default 7.0', async () => {
727-
const server = await MongoMemoryReplSet.create({ binary: { version: '7.0.7' } });
727+
const server = await MongoMemoryReplSet.create({ binary: { version: '7.0.11' } });
728728

729729
await server.stop();
730730
});
@@ -746,7 +746,7 @@ describe('MongoMemoryReplSet', () => {
746746
it('should not warn if no explicit storage engine is set in 7.0', async () => {
747747
jest.spyOn(console, 'warn');
748748
const server = await MongoMemoryReplSet.create({
749-
binary: { version: '7.0.7' },
749+
binary: { version: '7.0.11' },
750750
// replSet: { storageEngine: 'ephemeralForTest' },
751751
});
752752

@@ -760,7 +760,7 @@ describe('MongoMemoryReplSet', () => {
760760
it('should warn if "ephemeralForTest" is used explicitly in mongodb 7.0', async () => {
761761
const spy = jest.spyOn(console, 'warn').mockImplementationOnce(() => {});
762762
const server = await MongoMemoryReplSet.create({
763-
binary: { version: '7.0.7' },
763+
binary: { version: '7.0.11' },
764764
replSet: { storageEngine: 'ephemeralForTest' },
765765
});
766766

packages/mongodb-memory-server-core/src/__tests__/MongoMemoryServer.test.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1244,7 +1244,7 @@ describe('MongoMemoryServer', () => {
12441244
describe('server version specific', () => {
12451245
// should use default options that are supported for 7.0 (like not using "ephemeralForTest" by default)
12461246
it('should allow mongodb by default 7.0', async () => {
1247-
const server = await MongoMemoryServer.create({ binary: { version: '7.0.7' } });
1247+
const server = await MongoMemoryServer.create({ binary: { version: '7.0.11' } });
12481248

12491249
await server.stop();
12501250
});
@@ -1266,7 +1266,7 @@ describe('MongoMemoryServer', () => {
12661266
it('should not warn if no explicit storage engine is set in 7.0', async () => {
12671267
jest.spyOn(console, 'warn');
12681268
const server = await MongoMemoryServer.create({
1269-
binary: { version: '7.0.7' },
1269+
binary: { version: '7.0.11' },
12701270
// instance: { storageEngine: 'ephemeralForTest' },
12711271
});
12721272

@@ -1280,7 +1280,7 @@ describe('MongoMemoryServer', () => {
12801280
it('should warn if "ephemeralForTest" is used explicitly in mongodb 7.0', async () => {
12811281
const spy = jest.spyOn(console, 'warn').mockImplementationOnce(() => {});
12821282
const server = await MongoMemoryServer.create({
1283-
binary: { version: '7.0.7' },
1283+
binary: { version: '7.0.11' },
12841284
instance: { storageEngine: 'ephemeralForTest' },
12851285
});
12861286

packages/mongodb-memory-server-core/src/util/__tests__/MongoInstance.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ describe('MongodbInstance', () => {
264264
const mongod = await MongodbInstance.create({
265265
// this works without problems, because no explicit storage-engine is given, so mongodb automatically chooses wiredTiger
266266
instance: { port: gotPort, dbPath: tmpDir },
267-
binary: { version: '7.0.0' },
267+
binary: { version: '7.0.11' },
268268
});
269269
expect(mongod.mongodProcess!.pid).toBeGreaterThan(0);
270270
await mongod.stop();

packages/mongodb-memory-server-core/src/util/getport/index.ts

+14-1
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,24 @@ export async function getFreePort(
7373
const triedPort = await tryPort(nextPort);
7474

7575
if (triedPort > 0) {
76-
log('getFreePort: found free port', triedPort);
76+
// check if triedPort is already in the cache (ie the vm executed another instance's getport before binary startup)
77+
// and that the triedPort is not a custom port
78+
const inCacheAndNotSame = PORTS_CACHE.ports.has(triedPort) && nextPort !== triedPort;
79+
log(
80+
`getFreePort: found free port ${triedPort}, in cache and not custom: ${inCacheAndNotSame}`
81+
);
7782

7883
// returned port can be different than the "nextPort" (if net0listen)
7984
PORTS_CACHE.ports.add(nextPort);
8085

86+
// ensure that no other instance can get the same port if the vm decides to run the other instance's getport before starting the last one
87+
if (inCacheAndNotSame) {
88+
continue;
89+
}
90+
91+
// reset the cache time as we now have just added new ports
92+
PORTS_CACHE.timeSet = Date.now();
93+
8194
return triedPort;
8295
}
8396
}

packages/mongodb-memory-server-global-4.0/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mongodb-memory-server-global-4.0",
3-
"version": "10.0.0",
3+
"version": "10.0.1-beta.1",
44
"mongodb_version": "4.0.28",
55
"description": "MongoDB Server for testing (auto-download 4.0 version to ~/.cache/mongodb-binaries).",
66
"main": "index.js",
@@ -25,7 +25,7 @@
2525
"mongomem"
2626
],
2727
"dependencies": {
28-
"mongodb-memory-server-core": "10.0.0",
28+
"mongodb-memory-server-core": "10.0.1-beta.1",
2929
"tslib": "^2.6.3"
3030
},
3131
"scripts": {

packages/mongodb-memory-server-global-4.2/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mongodb-memory-server-global-4.2",
3-
"version": "10.0.0",
3+
"version": "10.0.1-beta.1",
44
"mongodb_version": "4.2.24",
55
"description": "MongoDB Server for testing (auto-download 4.2 version to ~/.cache/mongodb-binaries).",
66
"main": "index.js",
@@ -25,7 +25,7 @@
2525
"mongomem"
2626
],
2727
"dependencies": {
28-
"mongodb-memory-server-core": "10.0.0",
28+
"mongodb-memory-server-core": "10.0.1-beta.1",
2929
"tslib": "^2.6.3"
3030
},
3131
"scripts": {

packages/mongodb-memory-server-global-4.4/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mongodb-memory-server-global-4.4",
3-
"version": "10.0.0",
3+
"version": "10.0.1-beta.1",
44
"mongodb_version": "4.4.28",
55
"description": "MongoDB Server for testing (auto-download 4.4 version to ~/.cache/mongodb-binaries).",
66
"main": "index.js",
@@ -25,7 +25,7 @@
2525
"mongomem"
2626
],
2727
"dependencies": {
28-
"mongodb-memory-server-core": "10.0.0",
28+
"mongodb-memory-server-core": "10.0.1-beta.1",
2929
"tslib": "^2.6.3"
3030
},
3131
"scripts": {

packages/mongodb-memory-server-global/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mongodb-memory-server-global",
3-
"version": "10.0.0",
3+
"version": "10.0.1-beta.1",
44
"description": "MongoDB Server for testing (auto-download latest version to ~/.cache/mongodb-binaries).",
55
"main": "index.js",
66
"types": "index.d.ts",
@@ -24,7 +24,7 @@
2424
"mongomem"
2525
],
2626
"dependencies": {
27-
"mongodb-memory-server-core": "10.0.0",
27+
"mongodb-memory-server-core": "10.0.1-beta.1",
2828
"tslib": "^2.6.3"
2929
},
3030
"scripts": {

packages/mongodb-memory-server/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mongodb-memory-server",
3-
"version": "10.0.0",
3+
"version": "10.0.1-beta.1",
44
"description": "MongoDB Server for testing (auto-download latest version). The server will allow you to connect your favourite ODM or client library to the MongoDB Server and run parallel integration tests isolated from each other.",
55
"main": "index.js",
66
"types": "index.d.ts",
@@ -24,7 +24,7 @@
2424
"mongomem"
2525
],
2626
"dependencies": {
27-
"mongodb-memory-server-core": "10.0.0",
27+
"mongodb-memory-server-core": "10.0.1-beta.1",
2828
"tslib": "^2.6.3"
2929
},
3030
"scripts": {

0 commit comments

Comments
 (0)