Description of this microservice
This repository was created from Greenstand's template for microservice projects. This means it comes with many development tools that we use for development and deployment. As a contributor to this repository, you should learn and use these tools. They are outlined below.
db-migrate is used to create database tables and other database objects
https://www.conventionalcommits.org/en/v1.0.0/
husky will check commit messages to make sure they follow the required format
Open terminal and navigate to a folder to install this project:
git clone https://github.com/Greenstand/treetracker-repository-name.git
Install all necessary dependencies:
npm install
Generate Initial Code:
cd scripts
sh generate-resource.sh
The above commands would generate an initial set of endpoints for the resource using our defined code structure
Ask engineering leads for a doctl dev token
Install doctl command line tool
./scripts/setup-dev-database-passwords.sh
.env.*.example
to API root folderdatabase/database.json.example
to API database folderThis repository using db-migrate to manage database migrations for its schema.
cd database/
db-migrate --env dev up
If you have not installed db-migrate globally, you can run:
cd database/
../node_modules/db-migrate/bin/db-migrate --env dev up
Documentation for db-migrate: https://db-migrate.readthedocs.io/en/latest/
Our microservices use multiple layer structure to build the whole system. Similar with MVC structure:
To run the unit tests:
npm run test-unit
All the integration tests are located under folder __tests__
To run the integration test:
Run tests:
npm run test-integration
In order to efficiently run our integration tests, we rely on automated database seeding/clearing functions to mock database entries. To test these functions, run:
npm run test-seedDB
There is a command in the package.json
:
npm run test-watch
By running test with this command, the tests would re-run if any code change happened. And with the bail
argument, tests would stop when it met the first error, it might bring some convenience when developing.
NOTE: There is another command: test-watch-debug
, it is the same with test-watch
, except it set log's level to debug
.
Can also use Postman to test the API manually.
To run a local server with some seed data, run command:
npm run server-test
This command would run a API server locally, and seed some basic data into DB (the same with the data we used in the integration test).
.