hagopj13 / node-express-boilerplate

A boilerplate for building production-ready RESTful APIs using Node.js, Express, and Mongoose
MIT License
6.99k stars 2.05k forks source link

Tests issue #294

Open ragavendra opened 5 months ago

ragavendra commented 5 months ago

First of all, thanks for this template or boilerplate, there is a lot of modules that I learnt about.

When I run npm run test a lot of tests are failing like below, although I am running npm run dev in another instance.

 FAIL  tests/integration/auth.test.js (11.239 s)
  Auth routes
    POST /v1/auth/register
      ✕ should return 201 and successfully register user if request data is ok (683 ms)
      ✕ should return 400 error if email is invalid (105 ms)

Correct me if I am wrong. I can see that this project is not actively maintained? The reason for this is that I am seeing some not supported modules like xss-clean

npx create-nodejs-express-app project-name
Need to install the following packages:
create-nodejs-express-app@1.7.0
Ok to proceed? (y)

npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated xss-clean@0.1.4: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm warn deprecated glob@7.1.6: Glob versions prior to v9 are no longer supported
npm warn deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
Downloading files from repo https://github.com/hagopj13/node-express-boilerplate.git
ragavendra commented 5 months ago

Answering my own question. I was getting the below error when running the tests.

No write concern mode named 'majority-test' found in replica set configuration

I was able to fix it by following this .

Looks like the .env.example needs the MONGODB_URL to be updated like MONGODB_URL=mongodb+srv://mrrabbil:mernx123@cluster0.rtpbcy6.mongodb.net/app_todo?retryWrites=true

daveydee33 commented 5 months ago

@ragavendra you included your username and password

apank commented 3 months ago

I was able to fix it by following this .

Looks like the .env.example needs the MONGODB_URL to be updated like

the url in .env.example is referencing a local mongo server

the reason why you were getting that error is because in the config it appends -test to the db name; your mongo uri has query options appended to the end; hence why it's saying majority-test

you do not want tests running on your db with live/real data, plus if you take a look at tests/utils/setupTestDB.js you'll see that before each test it purges all the collections.

also as mentioned above you are sharing your username and password in the connection string you pasted