-
-
Notifications
You must be signed in to change notification settings - Fork 652
Description
Hey there, I am looking to contribute to this package =)
I started by reading the contribution guide and it said how to run the tests. So I decide to run the unit tests to make sure all is green before I start adding/changing stuff lol
But I ran into a problem running them locally, I see that they definelty all do run according to this action run.
But running them locally I am not having success, they seem to intermiately halt/stall at random points during the test run.
Repo Steps:
- Docker Compose
services:
mysql:
image: mysql:8.0
# platform: linux/amd64 --- add if on M1
container_name: mysql-v8.0
environment:
MYSQL_ROOT_PASSWORD: "somepassword"
MYSQL_DATABASE: test
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysqlRun docker compose up -d
- Made a launch.json for VSCode
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug npm test (poku)",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"test"
],
"port": 9229,
"env": {
"CI": "1",
"MYSQL_HOST": "127.0.0.1",
"MYSQL_USER": "root",
"MYSQL_PASSWORD": "somepassword",
"MYSQL_DATABASE": "node_test"
},
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}
]
}Or simply just exported it
export CI=1
export MYSQL_HOST=127.0.0.1
export MYSQL_USER=root
export MYSQL_PASSWORD=somepassword
export MYSQL_DATABASE=node_testNOTE: I noticed that the tests continue down a lot further IF I set MYSQL_HOST to 127.0.0.1, if I use localhost or 0.0.0.0, they stop a lot earlier at test/esm/unit/check-extensions.test.mjs, always.
- Run
npm run test
Expected:
All tests should run and complete.
Actual:
The test runner sometimes hangs or stops at different spots. Sometimes only a few tests run, sometimes more, but it never completes. This only happens locally; in CI all tests pass.
Here is where the tests stop running.
› test/esm/regressions/2052.test.mjs › 103.412708ms
🔬 Unit Test - Prepare result with number of parameters incorrectly reported by the server
✔ should report 0 actual parameters when 1 placeholder is used in ORDER BY ?
✔ expect no error
✔ parameters
✔ columns
✔ id
🔬 E2E Prepare result with number of parameters incorrectly reported by the server
✔ parameters length needs to be 1
✔ parameters length needs to be 2
› test/esm/unit/check-extensions.test.mjs › 72.220084ms
✔ Check for invalid file types found in restricted directories
And if I set MYSQL_HOST to 127.0.0.1, they tend to stop here but not all the time.
› test/esm/unit/check-extensions.test.mjs › 238.099792ms
Debugger attached.
✔ Check for invalid file types found in restricted directories
Waiting for the debugger to disconnect...
› test/esm/integration/pool-cluster/test-promise-wrapper.test.mjs › 292.063250ms
Debugger attached.
🔬 Test pool cluster
✔ should propagate warn event to promise wrapper
✔ should propagate remove event to promise wrapper
✔ should propagate offline event to promise wrapper
✔ should propagate online event to promise wrapper
✔ should get connection
✔ should query successfully
✔ should execute successfully
✔ should throw when PoolNamespace does not exist
✔ should match regex pattern
Waiting for the debugger to disconnect...Any ideas on what could cause this or how to debug further?
Some other notes:
Docker version 28.4.0, build d8eb465
node -v
v22.14.0
npm -v
10.9.2
mysql --version (inside a docker container)
mysql Ver 8.0.43 for Linux on x86_64 (MySQL Community Server - GPL)