@rapyuta-robotics/api-clients
v0.1.21
Published
Mock API server
Downloads
191
Keywords
Readme
@rapyuta-robotics/api-clients
Mock API server
You can use this package to intercept your network requests and mock the response.
This package also exports few types which can be used in your project.
How to add this package to your project
In your project's directory,
run yarn add @rapyuta-robotics/api-clients
To start the mock server/requests interception:
import { mockServer } from '@rapyuta-robotics/api-clients/test';
run mockServer.listen()
To stop the mock server/requests interception:
run mockServer.close()
Testing example
import { Factories } from '@rapyuta-robotics/api-clients'; import { mockApi, MockRoutes, expectApiCall } from '@rapyuta-robotics/api-clients/test';
// Configure the API. const map = Factories.MAPS({ id: 0 }); mockApi({ route: MockRoutes.MAPS, payload: [map] });
// Test the API. expectApiCall({ method: 'GET', route: MockRoutes.MAPS });
To add types to your project
import { ContainerState } from '@rapyuta-robotics/api-clients';
Reference
You can refer src/factories/types.ts
for all the exported types
You can refer src/factories/index.ts
for all the exported factory methods
How to develop this package locally
Start development:
- First, make sure that you have added this package to your project (see: How to add this package to your project)
- In this package's 📦 directory, run
yarn link
to create the symlink - In this package's 📦 directory, run
yarn start
to watch this package's file changes and rebuild automatically - In your project's 📝 directory, run
yarn link @rapyuta-robotics/api-clients
to establish the symlink - Your project is now referencing to the local copy of this package everytime you import such as
import { helloWorld } from '@rapyuta-robotics/api-clients'
- When you edit the code of this package, your project will hot-reload and reflect the new changes
Stop development:
- In your project's 📝 directory, run
yarn unlink @rapyuta-robotics/api-clients
to disband the symlink (NOTE: you need to do this before step (3), otherwise the unlink will fail. In the case that you mistakenly run (3) before (1), runyarn link
in this package's 📦 directory and restart from (1)) - In your project's 📝 directory, run
yarn install --force
to ensure that it's using the correct remote version of@rapyuta-robotics/api-clients
- In this package's 📦 directory, run
yarn unlink
to cancel the symlink
How to publish a new version
A new version will be published to NPM everytime a new release is created
The workflow shall be:
- Create a new release targeting devel. No release branch should be created as we are using trunk-based development approach.
- Tag of the new release should follow semantic versioning with [breaking change (compatibility issue)].[feature update].[bugfix patches] -> (x.y.z)
- Once release is created, github action will automatically publish it to npmjs.
FAQs
- If CI fails when trying to publish npm package, there is a chance that the project does not have access to
RR_NPM_TOKEN
in organization's secrets. Contact [email protected] when such case occurs.
References
- This project uses
tsup
for bundling and hot-bundling on code changes (see: https://github.com/egoist/tsup) - Yarn link & unlink workflow reference: https://gist.github.com/alanbsmith/6c581e5042b8e5e558b0b4454192eb69
- Trunk-based development: https://www.atlassian.com/continuous-delivery/continuous-integration/trunk-based-development