-
-
Notifications
You must be signed in to change notification settings - Fork 6.6k
Closed
Labels
Description
💥 Regression Report
Running Jest with --detectOpenHandles detects a TLSWRAP potential open handle on MongoDb connections, even if they are properly closed in an "afterAll" enclosure and jest exits without issues. The exact message is:
Jest has detected the following 1 open handle potentially keeping Jest from exiting:
● TLSWRAP
6 |
7 | beforeAll(async () => {
> 8 | await client.connect()
| ^
9 | })
10 |
11 | afterAll(async () => {
at Object.resolveSRVRecord (node_modules/mongodb/src/connection_string.ts:69:7)
at Object.connect (node_modules/mongodb/src/operations/connect.ts:51:12)
at node_modules/mongodb/src/mongo_client.ts:410:7
at Object.maybePromise (node_modules/mongodb/src/utils.ts:618:3)
at MongoClient.connect (node_modules/mongodb/src/mongo_client.ts:409:12)
at app.test.js:8:16
at TestScheduler.scheduleTests (node_modules/@jest/core/build/TestScheduler.js:333:13)
at runJest (node_modules/@jest/core/build/runJest.js:387:19)
at _run10000 (node_modules/@jest/core/build/cli/index.js:408:7)
at runCLI (node_modules/@jest/core/build/cli/index.js:261:3)
This seems to happen with MongoDb's official NodeJs driver, and, by extension, any other packages that use that driver (in my case I got it with mongoose and connect-mongo-session)
Last working version
Worked up to version: 26.6.3
Stopped working in version: 27.0.0
To Reproduce
NOTE: A valid MongoDB URI is needed to reproduce this issue.
Within an empty directory:
- Create a new empty Node project with:
npm init
- Install jest and mongodb
npm install jest mongodb
- Create a app.test.js file with following contents (add a valid MongoDB URI where necessary):
const { MongoClient } = require("mongodb");
// Replace the uri string with your MongoDB connection string.
const uri ='YOUR-MONGODB-URI'
const client = new MongoClient(uri)
beforeAll(async () => {
await client.connect()
})
afterAll(async () => {
await client.close()
})
test('testing', () => {
expect(client).toBeDefined()
})
- Run the test with jest and --detectOpenHandles
jest --detectOpenHandles
Expected behavior
No open handles should be found.
Link to repl or repo (highly encouraged)
Use the code snippet provided above.
Run npx envinfo --preset jest
Paste the results here:
System:
OS: macOS 11.4
CPU: (8) arm64 Apple M1
Binaries:
Node: 16.4.2 - /opt/local/bin/node
npm: 7.19.1 - /opt/local/bin/npm
npmPackages:
jest: ^27.0.0 => 27.0.6
Thank you for your help! <3
sschmeck, msarakon, restfulhead, SimonSiefke, FedericoStagnaro and 14 more