The aim of this project is to mock backend services building different responses for a given authentication, cookie or request among others.
stub-cli is a command line which helps you to create new projects, generate methods and test template.
Keep it simple 😄
Install the library:
Globally (recommended):
npm install -g @hectorjs/stub-cli
or locally:
npm install @hectorjs/stub-cli --save-dev
Globally (recommended):
yarn add -g @hectorjs/stub-cli
or locally:
yarn add @hectorjs/stub-cli --save-dev
Verify your hjs command is installed correctly.
hjs --version
hjs --help
It will display posible options available in the library.
It creates a new project with the name provided in the brakets.
Example: hjs new mock-service
You can add the option --vs
or --idea
to open the IDE.
If you execute the command without project name (hjs new
), the terminal will ask you for a new project (Create new project? [Yn]
). Response y when you want to create it (This is like hjs new [name-project]
) or response n when you want to set in your own package.json project.
MORE INFO: hjs new --help
It will generate a method template resource with a test. For example , hjs g get customers/{id}/business?product={param}
). More info: hjs g --help
.
You can generate different methods like get, head, post, delete among others.
For each method, it creates a test with dummy data. It will reduce the time to test the mock. Give it a try.
The request and response are json by default. If you want to create a scenario for xml, you have to include --xml
in you cli.
You can group each resource using the --package with the name of the folder where resource will be place.
For example: hjs g g customers --package customer
NOTE: The endpoint should not start with '/' for the cli and you should escape '&' like the next example:
hjs g post customers/{id}/products?query={param1}\&identifier={identifier}
MORE INFO: hjs generate --help
Execute the tests which have been created by each method generate command (hjs g get ...
). You can add different properties to the command as port, logs or profile.
NOTE: you can run npm run _test
or yarn _test
as well.
MORE INFO: hjs test --help
Also you can add --logs [type] --port [port] --profile [profile]
Create a config file (.hjs.config.json) where you can set the logs, port, among others settings.
hjs config --port 8090 --logs tiny --banner
The library use morgan library for the logs, so you can add different kind of logs as tiny, common...
MORE INFO: hjs config --help
If you want to run the mock hjs start
. Also if you want to run the mocks with nodemon listening the changes under the resources folder, execute hjs start --dev
.
NOTE: you can run npm run _start
or yarn _start
as well.
MORE INFO: hjs start --help
This section is in progress at this moment.
You can run the application and navigate to http://localhost:3005/
and have a look. You need to execute the command with ui-enable option available.
Also, you can add the following option in your hjs.config.js file:
{
"ui":{
"enable": true
}
}
MORE INFO: hjs start --open --ui-enable
Once you create a new project, it is adding a health check endpoint by default with its test.
Let's create a project called mock-service
hjs new mock-service
We navigate to the mock-service root and execute the test:
hjs test
You will see there is already a health check endpoint by default.
If you want to run the server and test it. You need to execute the start command:
hjs start
The service will be running in the port 3005 waiting for a request.
Make a request:
curl http://localhost:3005/health
The response will be like this:
{
"STATUS": "UP"
}
Now you can start adding new methods for your project.
Enjoy! :heart: