https://nc-news-ecke.onrender.com/
API to provide access to and query PSQL tables.
- npm
- express
- Nodemon
- psql
- node-postgres - min versions
- jest
- supertest
- Husky
-
Clone repo from: https://github.com/bensuth86/be-nc-news
-
After cloning the repo, create following .env files to access development and test database:
.env.development - add PGDATABASE = nc_news .env.test - add PGDATABASE = nc_news_test
-
install dependencies in order: $ npm init $ npm install $ npm install express --save $ npm install --save-dev nodemon $ npm install pg $ npm install --save-dev jest $ npm install supertest --save-dev $ npm install husky --save-dev
-
Check package.json includes following scripts and dependencies:
"scripts": { "setup-dbs": "psql -f ./db/setup.sql", "seed": "node ./db/seeds/run-seed.js", "test": "jest --verbose", "prepare": "husky install", "start": "node listen.js", "seed-prod": "NODE_ENV=production npm run seed" },
"devDependencies": { "husky": "^8.0.2", "jest": "^27.5.1", "jest-extended": "^2.0.0", "jest-sorted": "^1.0.14", "pg-format": "^1.0.4", "supertest": "^6.3.4" },
"dependencies": { "dotenv": "^16.0.0", "express": "^4.18.2", "pg": "^8.7.3" },
"jest": { "setupFilesAfterEnv": [ "jest-extended/all", "jest-sorted" ] }
-
To seed local database require development-data files in app.test.js:
- const { articleData, commentData, topicData, userData } = require('../db/data/test-data/index.js')
Before the test descriptions include beforeEach() and afterAll() to reset the database after tests are run:
- beforeEach(() => seed({ articleData, commentData, topicData, userData }))
- afterAll(() => db.end())
-
Seed online database:
npm- run seed.prod { "scripts": { "start": "node listen.js", "seed-prod": "NODE_ENV=production npm run seed" } }
-
Run all tests: 'npm test'