Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@hectorjs/stub-cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@hectorjs/stub-cli
Description
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
Install the library:
Npm
Globally (recommended):
npm install -g @hectorjs/stub-cli
or locally:
npm install @hectorjs/stub-cli --save-dev
Yarn
Globally (recommended):
yarn add -g @hectorjs/stub-cli
or locally:
yarn add @hectorjs/stub-cli --save-dev
Verification
Verify your hjs command is installed correctly.
hjs --version
hjs --help
Commands
1) hjs --help
It will display posible options available in the library.
2) hjs new/n [name-mock-service]
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
3) hjs generate/g [method] [name-path]
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
4) hjs test
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]
5) hjs config [prop]
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
6) hjs start
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
UI
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
Example
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! ❤️